本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
本书针对国内计算机、软件相关专业已先修Android编程设计课程的学生,旨在为具备良好编程能力的学生提供一本能够快速熟悉Android□台的教材,熟练掌握使用Kotlin来开发 Android的必备的基础知识,为今后的课程学习和职业前途打下坚实的基础
前言
□017年,Google公司在I/O官网上宣布Kotlin成为Android的开发语言,这既是大势所趋,也使得Android编程效率大增。随着计算机技术的发展,软件开发工作越来越自动化,开发人员进行具体的“编写代码工作”的时间越来越少,像Python和Kotlin这些更现代化、更简洁的编程语言,相比于传统的、稍显冗长的Java等语言,必将更受软件开发人员,特别是入门开发者的青睐。
Kotlin语言由JetBrains公司的Dmitry Jemerov在□011年开始带队开发,主要是为了解决Java之前一些诟病已久的问题(如空指针错误难以捕捉、对函数式编程支持差等),而且积极借鉴了Scala、Ruby等新语言在开发效率和简洁性上的优势。由于是全新开发和设计的语言,Kotlin基本没有历史包袱,在各方面上都具有先进性,可以被看作是重新设计的Java现代版; 另一方面,Kotlin相比Scala更容易实现与Java之间的互操作,例如很多Kotlin的库都可以直接复用Java基本库。Java的好处是语法工整,清晰直接,严格,不容易犯低级程序错误; 但它的问题也很明显——“verbosity”,中文通俗翻译就是“冗余”。实现相同的逻辑,用Java语言往往比用Python、Ruby等语言要多出两三倍的代码量,而运行在Java虚拟机上的Kotlin可以有效地节约Android开发人员不少时间,让编码工作更有效率。
为了帮助初学者更加高效地接触Kotlin,了解和熟悉如何使用Kotlin进行Android开发,我们编写了此书。相比市面上千篇一律的相关书籍,我们力求能直击Android的本质,以清晰合理的逻辑让初学者明白Android系统和Kotlin语言设计的初衷,从而设计出高效而不失优雅的Android程序。
本书分为三部分: □□部分(□□~8章)简要介绍Kotlin语言的基础知识,包括使用Kotlin进行面向对象编程和函数式编程的基本方法;
第二部分(第9~1□章)包括Android Studio的基本介绍和一些Android开发的高阶知识;
第三部分(□□3、14章)是实践部分,包含两个Android小项目和相关的一些实用开发框架。
对比其他Android教材,本书具有以下优点。
目标针对性强: 本书针对国内计算机、软件相关专业已先修Android编程设计课程的学生,旨在为具备良好编程能力的学生提供一本能够快速熟悉Android□台的教材,熟练掌握使用Kotlin开发Android的必备的基础知识,为今后的课程学习和职业前途打下坚实的基础。
内容与时俱进: 计算机学科的发展异常迅速,内容更新很快。作为教材,一方面要反映本领域基础性、普遍性的知识,保持内容的相对稳定性; 另一方面也需要不断跟踪科技的发展。本书介绍了Google公司官方推荐的Android编程□□语言——Kotlin,并坚持使用□新的Android版本和□013年Google公司推出的Android Studio作为开发环境,重点介绍使用新技术的案例,避免使用即将淘汰的设计方法。
结构合理: 本书体系结构严谨,概念清晰,由浅入深,符合学生的认知规律,易学易懂,且配有许多难度适中的习题,逻辑合理,适于初学者和进阶者拓展思路,深入了解Kotlin基础理论和章末要点总结,适合于教学和自学,是学生掌握Android开发的必备书目。
理论结合实践: 本书用实例讲授知识点,不局限于枯燥的理论介绍。与许多课程的规律类似,实践对于Android学习而言也是强化和提升学习效果的必由之路,否则无异于“入宝山而空返”。读者通过将书中代码手敲一遍或仿照书中实例自己编写小型应用进行练习,可切实强化编码能力,提高软件分析设计能力,真正回归语言学□□真谛。
着眼整体认识,体现特色内容: 本书注重系统思维,首先展现Kotlin基础知识体系的整体框架,然后深入细节,便于读者在脑海中清晰地构建知识网络,实现融会贯通。在具体内容上,本书力求突出Kotlin开发理论中□精华的部分,避免面面俱到、没有重点; 同时增加一些实际开发中可能会用到的高级知识和Android中的特色功能,以供读者进一步深入学习。
配套资源丰富: 本书提供教学大纲、教学课件、程序源码等配套资源,扫描封底的课件二维码可以下载。
由于时间仓促,本书可能还存在一些不足,欢迎读者批评指正。
编者□0□0年3月
目录
□□章Kotlin基础
1.1Kotlin简介
1.1.1□□个Kotlin程序
1.1.□Kotlin的语法糖
1.□变量
1.□.1val和var
1.□.□类型推断
1.3基本类型
1.4区间
1.5循环结构
1.6异常处理
1.7相等运算符
1.8可见性修饰符
1.9控制流程
1.9.1if表达式
1.9.□when表达式
习题
第□章Kotlin方法
□.1方法的定义
□.1.1单行表达式方法
□.1.□成员方法
□.1.3本地方法
□.1.4顶层方法
□.1.5字面量方法
□.1.6尾递归方法
□.1.7纯方法
□.□参数
□.□.1命名参数
□.□.□默认参数
□.□.3可变参数
□.3常见操作符
□.3.1一元操作符
□.3.□二元操作符
习题
第3章Kotlin类
3.1类的基本用法
3.1.1类与对象
3.1.□访问级别
3.1.3内部类
3.1.4静态方法
3.□继承
3.3接口
3.4抽象类
3.4.1抽象类的定义
3.4.□抽象类的使用
3.4.3抽象类的特点
3.4.4抽象类的规则
3.4.5抽象类的实际应用
3.4.6抽象类和接口的差异
3.5扩展
3.5.1扩展函数
3.5.□扩展属性
3.5.3伴生对象的扩展
3.5.4扩展的作用域
3.6枚举
3.7密封类
3.8数据类
3.8.1数据类的特性
3.8.□Kotlin中数据类的简洁性
习题
第4章空安全、反射、注解
4.1空安全
4.1.1可空类型
4.1.□智能转换
4.1.3访问可空变量
4.1.4强制操作符
4.1.5Elvis操作符
4.1.6安全转换
4.□反射
4.□.1Java虚拟机的体系结构
4.□.□获取类的信息
4.□.3获取类的其他信息
4.□.4在Kotlin中使用Java中的反射
4.□.5Kotlin中的KClass反射
4.3注解
4.3.1Java注解的组成部分
4.3.□在Java中定义Annotation
4.3.3Java中的常见注解
4.3.4让Java程序认识注解
4.3.5在Kotlin中使用注解
4.4兼容问题
习题
第5章Kotlin属性
5.1一般属性
5.1.1为什么使用属性
5.1.□语法和变量
5.1.3属性的访问规则
5.□延迟加载和懒加载
5.□.1延迟加载
5.□.□懒加载
5.□.3延迟加载和懒加载的差异
5.3委托属性
5.3.1什么是委托属性
5.3.□懒加载属性
5.3.3可观察属性
5.3.4把属性存储在映射中
5.3.5局部委托属性
5.3.6属性委托的要求
5.3.7翻译规则
5.4用属性还是方法
习题
第6章Kotlin泛型与集合
6.1泛型简介
6.□型变
6.□.1Java的类型通配符
6.□.□协变与逆变
6.□.3协变和逆变都是类型安全的
6.3Kotlin泛型的特色
6.3.1out T与in T
6.3.□声明处型变
6.3.3类型投影
6.3.4泛型函数和泛型类
6.4泛型小结
6.5初识集合
6.5.1Iterable
6.5.□MutableIterable
6.5.3Collection
6.5.4MutableCollection
6.6Set
6.6.1概述
6.6.□SetAPI
6.6.3只读Set
6.6.4可变Set
6.6.5与Java的比较
6.7List
6.7.1概述
6.7.□常用API
6.7.3相关操作
6.8Map
6.8.1概述
6.8.□相关操作
习题
第7章高阶函数
7.1函数作为参数
7.□函数作为返回值
7.3函数赋值
7.4闭包
7.5匿名函数
7.6函数的引用
7.6.1□□函数的引用
7.6.□成员函数和扩展函数的引用
7.7函数接收器
7.8记忆化
7.8.1概述
7.8.□实现记忆化
习题
第8章Kotlin DSL
8.1DSL
8.1.1通用编程语言和DSL
8.1.□API和DSL
8.1.3内部DSL
8.□有趣的Kotlin DSL
8.□.1日期
8.□.□单元测试
8.□.3HTML构建器
8.□.4SQL
8.□.5Android布局
8.□.6Gradle构建
8.3实现原理
8.3.1扩展函数
8.3.□Lambda表达式和高阶函数
8.3.3中缀调用
8.3.4invoke约定
习题
第9章初识Android Studio
9.1Android Studio的特性
9.1.1无比强大的开发工具
9.1.□比以往更快的编码和访问速度
9.1.3无限制配置构建
9.1.4满怀信心地编码
9.1.5创建丰富且关联的应用
9.1.6消除令人厌烦的任务
9.□使用Android Studio
9.□.1项目结构
9.□.□界面
9.□.3调试和分析工具
9.3Android项目结构概览
9.3.1模块
9.3.□项目文件
9.3.3项目结构设置
9.4创建□□个Android Studio项目
9.4.1启动新项目
9.4.□导入现有项目
9.4.3添加Kotlin代码
习题
□□0章Android Gradle
10.1Android Gradle编译文件
10.1.□□ettings.gradle
10.1.□□□的build.gradle
10.1.3app模块的build.gradle
10.□配置SDK版本号以及其他默认配置
10.3Gradle编译
10.3.1在命令行中执行Gradle编译
10.3.□在Android Studio中执行Gradle编译
10.4处理依赖
10.4.1添加Java库依赖
10.4.□同步
10.4.3依赖传递
10.4.4使用Android Studio添加库依赖
10.4.5Configuring Repository
10.5设置工程属性
10.6升级新版本的Gradle
习题
□□1章Activity和Fragment
11.1Activity
11.1.1概述
11.1.□Activity的创建方法
11.1.3Activity的生命周期
11.1.4Activity之间的通信
11.1.5Activity的4种启动模式
11.□Fragment
11.□.1概述
11.□.□动态添加Fragment
11.□.3Fragment的生命周期
11.□.4Fragment的通信
习题
□□□章Service和广播
1□.1Service详解
1□.1.1Service的基本用法
1□.1.□Service的生命周期
1□.1.3Service和Activity进行通信
1□.1.4前台服务
1□.1.5Service和Thread的关系
1□.□广播
1□.□.1概述
1□.□.□静态注册
1□.□.3动态注册
1□.□.4本地广播
1□.□.5使用私有权限
1□.□.6实战演练
习题
□□3章Kotlin实战之简单天气
13.1RxJava介绍
13.1.1作用
13.1.□项目引用
13.1.3概念
13.1.4RxJava中的观察者模式
13.1.5基本的用法
13.1.6RxJava中的操作符
13.1.7RxJava中的Scheduler
13.1.8RxJava在网络请求中的使用
13.□Disposable简介及使用
13.□.1Disposable简介
13.□.□Disposable对象的获得
13.3Flowable
13.3.1Flowable的产生
13.3.□处理Backpressure的策略
13.4天气数据源
13.4.1数据源简介
13.4.□API地址和常用参数
13.4.3获取JSON展示样例
13.5Demo开发
13.5.1创建项目
13.5.□建立数据模型
13.5.3请求数据
13.6UI界面交互和数据
13.6.1主页面的实现
13.6.□搜索城市页面的实现
13.6.3当前天气页面的实现
13.6.4多日预报页面的实现
13.6.5分时查询页面的实现
□□4章Kotlin实战之会议App
14.1Dagger□介绍
14.□Dagger□的使用
14.□.1引入Dagger□
14.□.□注解的使用
14.3Room DB存储
14.3.1Room的3大组件
14.3.□Room的实际使用
14.4导入第三方依赖库
14.5界面分析
14.5.1首页的实现
14.5.□个人主页
14.5.3详情页面
参考文献
1986-199□: 北方交通大学讲师; 199□-1994: 比利时VUB大学应用信息技术硕士; 1994-1996: 比利时VUB大学MBA; 1996-□003: IT公司项目经理 □003-至今: 北航软件学院副教授。已出版二十几本教材(其中“计算机导论实践教程”一书获北航□010年教学成果三等奖;“大学计算机英语教程”获北航□01□年教学成果二等奖。 主讲课程: 计算机导论、软件工程、职业生涯规划等。