您的位置:首页 > 移动开发 > Android开发

Android官方培训中文课程

2016-04-26 10:47 211 查看
序言 | Android官方培训课程中文版(v0.9.5)

[/i]

序言

[/i]

1.

Android入门基础:从这里开始

[/i]

1.1.

建立第一个App

[/i]

1.1.1.

创建Android项目

[/i]

1.1.2.

执行Android程序

[/i]

1.1.3.

建立简单的用户界面

[/i]

1.1.4.

启动其他的Activity

[/i]

1.2.

添加ActionBar

[/i]

1.2.1.

建立ActionBar

[/i]

1.2.2.

添加Action按钮

[/i]

1.2.3.

自定义ActionBar的风格

[/i]

1.2.4.

ActionBar的覆盖层叠

[/i]

1.3.

兼容不同的设备

[/i]

1.3.1.

适配不同的语言

[/i]

1.3.2.

适配不同的屏幕

[/i]

1.3.3.

适配不同的系统版本

[/i]

1.4.

管理Activity的生命周期

[/i]

1.4.1.

启动与销毁Activity

[/i]

1.4.2.

暂停与恢复Activity

[/i]

1.4.3.

停止与重启Activity

[/i]

1.4.4.

重新创建Activity

[/i]

1.5.

使用Fragment建立动态的UI

[/i]

1.5.1.

创建一个Fragment

[/i]

1.5.2.

建立灵活动态的UI

[/i]

1.5.3.

Fragments之间的交互

[/i]

1.6.

数据保存

[/i]

1.6.1.

保存到Preference

[/i]

1.6.2.

保存到文件

[/i]

1.6.3.

保存到数据库

[/i]

1.7.

与其他应用的交互

[/i]

1.7.1.

Intent的发送

[/i]

1.7.2.

接收Activity返回的结果

[/i]

1.7.3.

Intent过滤

[/i]

2.

Android分享操作

[/i]

2.1.

分享简单的数据

[/i]

2.1.1.

给其他App发送简单的数据

[/i]

2.1.2.

接收从其他App返回的数据

[/i]

2.1.3.

给ActionBar增加分享功能

[/i]

2.2.

分享文件

[/i]

2.2.1.

建立文件分享

[/i]

2.2.2.

分享文件

[/i]

2.2.3.

请求分享一个文件

[/i]

2.2.4.

获取文件信息

[/i]

2.3.

使用NFC分享文件

[/i]

2.3.1.

发送文件给其他设备

[/i]

2.3.2.

接收其他设备的文件

[/i]

3.

Android多媒体

[/i]

3.1.

管理音频播放

[/i]

3.1.1.

控制音量与音频播放

[/i]

3.1.2.

管理音频焦点

[/i]

3.1.3.

兼容音频输出设备

[/i]

3.2.

拍照

[/i]

3.2.1.

简单的拍照

[/i]

3.2.2.

简单的录像

[/i]

3.2.3.

控制相机硬件

[/i]

3.3.

打印

[/i]

3.3.1.

打印照片

[/i]

3.3.2.

打印HTML文档

[/i]

3.3.3.

打印自定义文档

[/i]

4.

Android图像与动画

[/i]

4.1.

高效显示Bitmap

[/i]

4.1.1.

高效加载大图

[/i]

4.1.2.

非UI线程处理Bitmap

[/i]

4.1.3.

缓存Bitmap

[/i]

4.1.4.

管理Bitmap的内存

[/i]

4.1.5.

在UI上显示Bitmap

[/i]

4.2.

使用OpenGL ES显示图像

[/i]

4.2.1.

建立OpenGL ES的环境

[/i]

4.2.2.

定义Shapes

[/i]

4.2.3.

绘制Shapes

[/i]

4.2.4.

运用投影与相机视图

[/i]

4.2.5.

添加移动

[/i]

4.2.6.

响应触摸事件

[/i]

4.3.

添加动画

[/i]

4.3.1.

View间渐变

[/i]

4.3.2.

使用ViewPager实现屏幕滑动

[/i]

4.3.3.

展示Card翻转动画

[/i]

4.3.4.

缩放View

[/i]

4.3.5.

布局变更动画

[/i]

5.

Android网络连接与云服务

[/i]

5.1.

无线连接设备

[/i]

5.1.1.

使用网络服务发现

[/i]

5.1.2.

使用WiFi建立P2P连接

[/i]

5.1.3.

使用WiFi P2P服务

[/i]

5.2.

执行网络操作

[/i]

5.2.1.

连接到网络

[/i]

5.2.2.

管理网络的使用情况

[/i]

5.2.3.

解析XML数据

[/i]

5.3.

传输数据时避免消耗大量电量

[/i]

5.3.1.

优化下载以高效地访问网络

[/i]

5.3.2.

最小化定期更新造成的影响

[/i]

5.3.3.

重复的下载是冗余的

[/i]

5.3.4.

根据网络连接类型来调整下载模式

[/i]

5.4.

云同步

[/i]

5.4.1.

使用备份API

[/i]

5.4.2.

使用Google Cloud Messaging

[/i]

5.5.

解决云同步的保存冲突

[/i]

5.6.

使用Sync Adapter传输数据

[/i]

5.6.1.

创建Stub授权器

[/i]

5.6.2.

创建Stub Content Provider

[/i]

5.6.3.

创建Sync Adpater

[/i]

5.6.4.

执行Sync Adpater

[/i]

5.7.

使用Volley执行网络数据传输

[/i]

5.7.1.

发送简单的网络请求

[/i]

5.7.2.

建立请求队列

[/i]

5.7.3.

创建标准的网络请求

[/i]

5.7.4.

实现自定义的网络请求

[/i]

6.

Android联系人与位置信息

[/i]

6.1.

Android联系人信息

[/i]

6.1.1.

获取联系人列表

[/i]

6.1.2.

获取联系人详情

[/i]

6.1.3.

使用Intents修改联系人信息

[/i]

6.1.4.

显示联系人头像

[/i]

6.2.

Android位置信息

[/i]

6.2.1.

获取最后可知位置

[/i]

6.2.2.

获取位置更新

[/i]

6.2.3.

显示位置地址

[/i]

6.2.4.

创建和监视地理围栏

[/i]

7.

Android可穿戴应用

[/i]

7.1.

赋予Notification可穿戴特性

[/i]

7.1.1.

创建Notification

[/i]

7.1.2.

在Notifcation中接收语音输入

[/i]

7.1.3.

为Notification添加显示页面

[/i]

7.1.4.

以Stack的方式显示Notifications

[/i]

7.2.

创建可穿戴的应用

[/i]

7.2.1.

创建并运行可穿戴应用

[/i]

7.2.2.

创建自定义的布局

[/i]

7.2.3.

添加语音功能

[/i]

7.2.4.

打包可穿戴应用

[/i]

7.2.5.

通过蓝牙进行调试

[/i]

7.3.

创建自定义的UI

[/i]

7.3.1.

定义Layouts

[/i]

7.3.2.

创建Card

[/i]

7.3.3.

创建List

[/i]

7.3.4.

创建2D Picker

[/i]

7.3.5.

创建确认界面

[/i]

7.3.6.

退出全屏的Activity

[/i]

7.4.

发送并同步数据

[/i]

7.4.1.

访问可穿戴数据层

[/i]

7.4.2.

同步数据单元

[/i]

7.4.3.

传输资源

[/i]

7.4.4.

发送与接收消息

[/i]

7.4.5.

处理数据层的事件

[/i]

7.5.

创建表盘

[/i]

7.5.1.

设计表盘

[/i]

7.5.2.

构建表盘服务

[/i]

7.5.3.

绘制表盘

[/i]

7.5.4.

在表盘上显示信息

[/i]

7.5.5.

提供配置 Activity

[/i]

7.5.6.

定位常见的问题

[/i]

7.5.7.

优化性能和电池使用时间

[/i]

7.6.

位置检测

[/i]

8.

Android TV应用

[/i]

8.1.

创建TV应用

[/i]

8.1.1.

创建TV应用的第一步

[/i]

8.1.2.

处理TV硬件部分

[/i]

8.1.3.

创建TV的布局文件

[/i]

8.1.4.

创建TV的导航栏

[/i]

8.2.

创建TV播放应用

[/i]

8.2.1.

创建目录浏览器

[/i]

8.2.2.

提供一个Card视图

[/i]

8.2.3.

创建详情页

[/i]

8.2.4.

显示正在播放卡片

[/i]

8.3.

帮助用户在TV上探索内容

[/i]

8.3.1.

TV上的推荐内容

[/i]

8.3.2.

使得TV App能够被搜索

[/i]

8.3.3.

使用TV应用进行搜索

[/i]

8.4.

创建TV游戏应用

[/i]

8.5.

创建TV直播应用

[/i]

8.6.

TV Apps Checklist

[/i]

9.

Android企业级应用

[/i]

9.1.

Ensuring Compatibility with Managed Profiles

[/i]

9.2.

Implementing App Restrictions

[/i]

9.3.

Building a Work Policy Controller

[/i]

10.

Android交互设计

[/i]

10.1.

设计高效的导航

[/i]

10.1.1.

规划屏幕界面与他们之间的关系

[/i]

10.1.2.

为多种大小的屏幕进行规划

[/i]

10.1.3.

提供向下和横向导航

[/i]

10.1.4.

提供向上和历史导航

[/i]

10.1.5.

综合:设计样例 App

[/i]

10.2.

实现高效的导航

[/i]

10.2.1.

使用Tabs创建Swipe视图

[/i]

10.2.2.

创建抽屉导航

[/i]

10.2.3.

提供向上的导航

[/i]

10.2.4.

提供向后的导航

[/i]

10.2.5.

实现向下的导航

[/i]

10.3.

通知提示用户

[/i]

10.3.1.

建立Notification

[/i]

10.3.2.

当启动Activity时保留导航

[/i]

10.3.3.

更新Notification

[/i]

10.3.4.

使用BigView风格

[/i]

10.3.5.

显示Notification进度

[/i]

10.4.

增加搜索功能

[/i]

10.4.1.

建立搜索界面

[/i]

10.4.2.

保存并搜索数据

[/i]

10.4.3.

保持向下兼容

[/i]

10.5.

使得你的App内容可被Google搜索

[/i]

10.5.1.

为App内容开启深度链接

[/i]

10.5.2.

为索引指定App内容

[/i]

11.

Android界面设计

[/i]

11.1.

为多屏幕设计

[/i]

11.1.1.

兼容不同的屏幕大小

[/i]

11.1.2.

兼容不同的屏幕密度

[/i]

11.1.3.

实现可适应的UI

[/i]

11.2.

创建自定义View

[/i]

11.2.1.

创建自定义的View类

[/i]

11.2.2.

实现自定义View的绘制

[/i]

11.2.3.

使得View可交互

[/i]

11.2.4.

优化自定义View

[/i]

11.3.

创建向后兼容的UI

[/i]

11.3.1.

抽象新的APIs

[/i]

11.3.2.

代理至新的APIs

[/i]

11.3.3.

使用旧的APIs实现新API的效果

[/i]

11.3.4.

使用版本敏感的组件

[/i]

11.4.

实现辅助功能

[/i]

11.4.1.

开发辅助程序

[/i]

11.4.2.

开发辅助服务

[/i]

11.5.

管理系统UI

[/i]

11.5.1.

淡化系统Bar

[/i]

11.5.2.

隐藏系统Bar

[/i]

11.5.3.

隐藏导航Bar

[/i]

11.5.4.

全屏沉浸式应用

[/i]

11.5.5.

响应UI可见性的变化

[/i]

11.6.

创建使用Material Design的应用

[/i]

11.6.1.

开始使用Material Design

[/i]

11.6.2.

使用Material的主题

[/i]

11.6.3.

创建Lists与Cards

[/i]

11.6.4.

定义Shadows与Clipping视图

[/i]

11.6.5.

使用Drawables

[/i]

11.6.6.

自定义动画

[/i]

11.6.7.

维护兼容性

[/i]

12.

Android用户输入

[/i]

12.1.

使用触摸手势

[/i]

12.1.1.

检测常用的手势

[/i]

12.1.2.

跟踪手势移动

[/i]

12.1.3.

滚动手势动画

[/i]

12.1.4.

处理多点触控手势

[/i]

12.1.5.

拖拽与缩放

[/i]

12.1.6.

管理ViewGroup中的触摸事件

[/i]

12.2.

处理键盘输入

[/i]

12.2.1.

指定输入法类型

[/i]

12.2.2.

处理输入法可见性

[/i]

12.2.3.

支持键盘导航

[/i]

12.2.4.

处理按键动作

[/i]

12.3.

支持游戏控制器

[/i]

12.3.1.

处理控制器输入动作

[/i]

12.3.2.

在不同的 Android 系统版本支持控制器

[/i]

12.3.3.

支持多个控制器

[/i]

13.

Android后台任务

[/i]

13.1.

在IntentService中执行后台任务

[/i]

13.1.1.

创建IntentService

[/i]

13.1.2.

发送工作任务到IntentService

[/i]

13.1.3.

报告后台任务执行状态

[/i]

13.2.

使用CursorLoader在后台加载数据

[/i]

13.2.1.

使用CursorLoader执行查询任务

[/i]

13.2.2.

处理CursorLoader查询的结果

[/i]

13.3.

管理设备的唤醒状态

[/i]

13.3.1.

保持设备的唤醒

[/i]

13.3.2.

制定重复定时的任务

[/i]

14.

Android性能优化

[/i]

14.1.

管理应用的内存

[/i]

14.2.

代码性能优化建议

[/i]

14.3.

提升Layout的性能

[/i]

14.3.1.

优化layout的层级

[/i]

14.3.2.

使用include标签重用layouts

[/i]

14.3.3.

按需加载视图

[/i]

14.3.4.

使得ListView滑动顺畅

[/i]

14.4.

优化电池寿命

[/i]

14.4.1.

监测电量与充电状态

[/i]

14.4.2.

判断与监测Docking状态

[/i]

14.4.3.

判断与监测网络连接状态

[/i]

14.4.4.

根据需要操作Broadcast接受者

[/i]

14.5.

多线程操作

[/i]

14.5.1.

在一个线程中执行一段特定的代码

[/i]

14.5.2.

为多线程创建线程池

[/i]

14.5.3.

启动与停止线程池中的线程

[/i]

14.5.4.

与UI线程通信

[/i]

14.6.

避免出现程序无响应ANR

[/i]

14.7.

JNI使用指南

[/i]

14.8.

优化多核处理器(SMP)下的Android程序

[/i]

15.

Android安全与隐私

[/i]

15.1.

Security Tips

[/i]

15.2.

使用HTTPS与SSL

[/i]

15.3.

为防止SSL漏洞而更新Security

[/i]

15.4.

使用设备管理条例增强安全性

[/i]

16.

Android测试程序

[/i]

16.1.

测试你的Activity

[/i]

16.1.1.

建立测试环境

[/i]

16.1.2.

创建与执行测试用例

[/i]

16.1.3.

测试UI组件

[/i]

16.1.4.

创建单元测试

[/i]

16.1.5.

创建功能测试

Published using GitBook



Google Android团队在2012年的时候开设了Android Training板块 - http://developer.android.com/training/index.html,这些课程是学习Android应用开发的绝佳资料。我们通过Github发起开源协作翻译的项目,完成中文版的输出,欢迎大家传阅学习!
文章中难免会有很多写的不对不好的地方,欢迎读者加入此协作项目,进行纠错,为完善这份教程贡献一点力量!

Github托管主页

https://github.com/kesenhoo/android-training-course-in-chinese

请读者点击Star进行关注并支持!

在线阅读

http://hukai.me/android-training-course-in-chinese/index.html

参与方式

你可以选择以下的方式帮忙修改纠正这份教程(推荐使用方法1):

通过在线阅读课程的页面,找到Github仓库对应的章节文件,直接在线编辑修改提交即可。

在线阅读的文章底部留言,提出问题与修改意见,我们会及时处理。

写邮件给发起人:胡凯,邮箱是kesenhoo at gmail.com,邮件内容注明需要纠正的章节段落位置,并给出纠正的建议。

你也可以选择加入QQ群和学习Training课程的小伙伴一起讨论交流:

Android Training基础群,适合刚接触Android Training课程的同学。
基础群(1):363415744,已满

基础群(2):399077455,已满

基础群(3):458929573

Android Training进阶群:适合实际Android开发经验1-3年的同学。

进阶群(1):414115939,已满

进阶群(2):386059229

Android Training高级群:399096506,理论上Android开发经验至少3年以上,部分能力突出的也可以申请,请在申请入群的时候填写能力举证(例如,XXX公司Android高级开发/个人博客/Github账号等等),未填写的不予通过,谢谢配合!

课程结构

序言

Android入门基础:从这里开始
建立你的第一个App - @yuanfentiank789

添加ActionBar - @vincent4j

兼容不同的设备 - @Lin-H

管理Activity的生命周期 - @kesenhoo

使用Fragment建立动态的UI - @fastcome1985

数据保存 - @kesenhoo

与其他应用的交互 - @kesenhoo

Android分享操作

分享简单的数据 - @kesenhoo

分享文件 - @jdneo

使用NFC分享文件 - @jdneo

Android多媒体

管理音频播放 - @kesenhoo

拍照 - @kesenhoo

打印 - @jdneo

Android图像与动画

高效显示Bitmap - @kesenhoo

使用OpenGL ES显示图像 - @jdneo

添加动画 - @XizhiXu

Android网络连接与云服务

无线连接设备 - @naizhengtan

网络连接操作 - @kesenhoo

传输数据时避免消耗大量电量 - @kesenhoo

使用Sync Adapter传输数据 - @jdneo

使用Volley执行网络数据传输 - @kesenhoo

云同步 - @kesenhoo,@jdneo

解决云同步的保存冲突 - @jdneo

Android联系人与位置信息

Android联系人信息 - @spencer198711

Android位置信息 - @penkzhou

Android可穿戴应用

赋予Notification可穿戴的特性 - @wangyachen

创建可穿戴的应用 - @kesenhoo

创建自定义的UI - @Roya

发送并同步数据 - @wly2014

创建表盘 - @heray1990

位置检测 - @heray1990

Android企业级应用

Ensuring Compatibility with Managed Profiles - @2015/03/14 - 待认领

Implementing App Restrictions - @2015/03/14 - 待认领

Building a Work Policy Controller - @2015/03/14 - 待认领

Android TV应用

创建TV应用 - @awong1900

创建TV播放应用 - @huanglizhuo

帮助用户在TV上探索内容 - @awong1900

创建TV游戏应用 - @dupengwei

创建TV直播应用 - @dupengwei

TV应用清单 - @awong1900

Android交互设计

设计高效的导航 - @XizhiXu

实现高效的导航 - @Lin-H

通知提示用户 - @fastcome1985

增加搜索功能 - @Lin-H

使得你的App内容可被Google搜索 - @Lin-H

Android界面设计

为多屏幕设计 - @riverfeng

创建自定义View - @kesenhoo

创建向后兼容的UI - @spencer198711

实现辅助功能 - @K0ST

管理系统UI - @K0ST

创建Material Design的应用 - @allenlsy

Android用户输入

使用触摸手势 - @Andrwyw

处理键盘输入 - @zhaochunqi

支持游戏控制器 - @heray1990

Android后台任务

在IntentService中执行后台任务 - @kesenhoo

在后台加载数据 - @kesenhoo

管理设备的唤醒状态 - @jdneo,@lltowq

Android性能优化

管理应用的内存 - @kesenhoo

性能优化Tips - @kesenhoo

提升Layout的性能 - @allenlsy

优化电池寿命 - @kesenhoo

多线程操作 - @AllenZheng1991

避免程序无响应ANR - @kesenhoo

JNI Tips - @pedant

优化多核处理器(SMP)下的Android程序 - @kesenhoo - 20%

Android安全与隐私

Security Tips - @craftsmanBai

使用HTTPS与SSL - @craftsmanBai

Android测试程序

测试你的Activity - @huanglizhuo

致谢

发起这个项目之后,得到很多人的支持,有经验丰富的Android开发者,也有刚接触Android的爱好者。他们有些已经上班,有些还是学生,有些在国内,还有的在国外!感谢所有参与或者关注这个项目的小伙伴!

下面是参与翻译的小伙伴(Github ID按照课程结构排序):

012
@yuanfentiank789@vincent4j@Lin-H
@kesenhoo@fastcome1985@jdneo
@XizhiXu@naizhengtan@spencer198711
@penkzhou@wangyachen@wly2014
@fastcome1985@riverfeng@xrayzh
@K0ST@Andrwyw@zhaochunqi
@lltowq@allenlsy@AllenZheng1991
@pedant@craftsmanBai@huanglizhuo
@Roya@awong1900@dupengwei
0:101:102:10
@发起人:胡凯,博客:http://hukai.me,Github:https://github.com/kesenhoo,微博:http://weibo.com/kesenhoo

还有众多参与纠错校正的同学名字就不一一列举了,谢谢所有关注这个项目的小伙伴!特别感谢安卓巴士社区爱开发社区码农周刊对项目的宣传!

License

本站作品由https://github.com/kesenhoo/android-training-course-in-chinese创作,采用知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: