第1章 活用布局 1
Hack 1使用weight属性实现视图的居中显示 1
1.1合用weightSum属性和layout weight属性 2
1.2概要 4
1.3外部链接 4
Hack 2使用延迟加载以及避免代码重复 4
2.1使用<include />标签避免代码重复 5
2.2通过ViewStub实现View的延迟加载 7
2.3概要 9
2.4外部链接 9
Hack 3创建定制的ViewGroup 10
3.1理解Android绘制视图的方式 11
3.2创建CascadeLayout 12
3.3为子视图添加自定义属性 15
3.4概要 17
3.5外部链接 17
Hack 4偏好设置使用技巧 17
4.1概要 20
4.2外部链接 20
第2章 添加悦目的动画效果 21
Hack 5使用TextSwitcher和ImageSwitcher实现平滑过渡 21
5.1概要 23
5.2外部链接 23
Hack 6为ViewGroup的子视图添加悦目的动画效果 24
6.1概要 26
6.2外部链接 26
Hack 7在Canvas上显示动画 26
7.1概要 28
7.2外部链接 28
Hack 8附加Ken Burns特效的幻灯片 29
8.1概要 31
8.2外部链接 31
第3章 使用视图的技巧和窍门 33
Hack 9避免在EditText中验证日期 33
9.1概要 34
9.2外部链接 35
Hack 10格式化TextView的文本 35
10.1概要 36
10.2外部链接 37
Hack 11为文本添加发亮的效果 37
11.1概要 39
11.2外部链接 39
Hack 12为背景添加圆角边框 39
12.1概要 40
12.2外部链接 40
Hack 13在onCreate()方法中获取View的宽度和高度 40
13.1概要 42
13.2外部链接 42
Hack 14 VideoView的转屏处理技巧 42
14.1概要 46
14.2外部链接 46
Hack 15 移除背景以提升Activity启动速度 46
15.1概要 48
15.2外部链接 48
Hack 16更改Toast显示位置的技巧 48
16.1概要 50
16.2外部链接 50
Hack 17使用Gallery创建向导表单 50
17.1概要 55
17.2外部链接 55
第4章 实用工具 56
Hack 18在发布正式版本前移除日志语句 56
18.1概要 57
18.2外部链接 58
Hack 19使用Hierarchy Viewer工具移除不必要的视图 58
19.1概要 62
19.2外部链接 62
第5章 模式 63
Hack 20模型-视图-主导器模式 63
20.1概要 66
20.2外部链接 66
Hack 21与Activity生命周期绑定的BroadcastReceiver 66
21.1概要 68
21.2外部链接 68
Hack 22使用Android库项目时适用的架构模式 69
22.1后台逻辑和模型 69
22.2库项目 70
22.3 Android应用程序 71
22.4概要 71
22.5外部链接 72
Hack 23同步适配器模式 72
23.1一般方法 72
23.2我的方法 74
23.3概要 89
23.4外部链接 89
第6章 活用列表和适配器 91
Hack 24处理空列表 91
24.1概要 92
24.2外部链接 92
Hack 25通过ViewHolder优化适配器 93
25.1概要 95
25.2外部链接 95
Hack 26为ListView添加分段标头 95
26.1创建列表布局 97
26.2创建可视分段标头 98
26.3最后一步 99
26.4概要 100
26.5外部链接 100
Hack 27使用Activity和Delegate与适配器交互 101
27.1概要 103
27.2外部链接 103
Hack 28充分利用ListView的头视图 103
28.1概要 106
28.2外部链接 106
Hack 29在ViewPager中处理转屏 106
29.1概要 108
29.2外部链接 108
Hack 30 ListView的选择模式 108
30.1概要 112
30.2外部链接 113
第7章 实用库 114
Hack 31 Android面向切面编程 114
31.1概要 118
31.2外部链接 118
Hack 32使用Cocos2d-x美化应用程序 118
32.1 Cocos2d-x是什么 119
32.2使用Cocos2d-x 119
32.3概要 123
32.4外部链接 123
第8章 与其他编程语言交互 125
Hack 33在Android上运行Objective-C 125
33.1下载并编译Itoa 126
33.2划分模块 127
33.3创建Java层代码 131
33.4概要 132
33.5外部链接 133
Hack 34在Android中使用Scala 133
34.1概要 136
34.2外部链接 137
第9章 可复用的代码片段 138
Hack 35同时发起多个Intent 138
35.1拍照 139
35.2从相册中选择照片 139
35.3整合两种Intent 139
35.4概要 140
35.5外部链接 140
Hack 36在用户反馈中收集信息 140
36.1概要 143
36.2外部链接 143
Hack 37向media ContentProvider添加MP3文件 143
37.1使用ContentValues添加MP3文件 144
37.2使用MediaScanner添加MP3文件 144
37.3概要 145
37.4外部链接 145
Hack 38为ActionBar添加刷新动作 145
38.1概要 149
38.2外部链接 149
Hack 39从Market中获取依赖功能 149
39.1概要 151
39.2外部链接 152
Hack 40以后进先出方式加载图片 152
40.1起点:Android示例程序 152
40.2引入executor 153
40.3 UI线程——离开返回的无缝衔接 155
40.4注意事项 155
40.5概要 155
40.6外部链接 156
第10章 数据库进阶 157
Hack 41使用ORMLite构建数据库 157
41.1一个简单的数据模型 158
41.2开始 159
41.3坚如磐石的数据库schema 160
41.4 SQLiteOpenHelper——数据库通道 163
41.5用于数据库访问的单例模式 165
41.6 CRUD操作一点通 166
41.7查询构建器 167
41.8数据类型和棘手的外部类型 169
41.9原生SQL查询 172
41.10事务 174
41.11概要 175
41.12外部链接 176
Hack 42为SQLite添加自定义功能 176
42.1 Java代码 177
42.2 native代码 178
42.3概要 180
42.4外部链接 180
Hack 43数据库批处理 181
43.1不使用批处理操作 182
43.2使用批处理操作 183
43.3使用SQLiteContentProvider执行批处理操作 184
43.4概要 186
43.5外部链接 186
第11章 避免代码碎片化 187
Hack 44处理熄灯模式 187
44.1 Android 2.x 188
44.2 Android 3.x 189
44.3在一个Activity中整合两种实现 190
44.4概要 190
44.5外部链接 191
Hack 45在旧版本上使用新API 191
45.1使用apply()替代commit() 191
45.2将应用程序安装到SD卡中 194
45.3概要 195
45.4外部链接 195
Hack 46向后兼容的通知 196
46.1概要 200
46.2外部链接 200
Hack 47使用Fragment创建Tab 201
47.1创建自定义Tab的UI界面 201
47.2在Activity中放置Tab 202
47.3概要 203
47.4外部链接 203
第12章 构建工具 204
Hack 48使用Apache Maven处理依赖关系 204
48.1概要 208
48.2外部链接 208
Hack 49在root过的设备上安装依赖库 209
49.1 dex预处理 211
49.2创建与权限相关的XML文件 211
49.3修改AndroidManifest.xml文件 212
49.4概要 212
49.5外部链接 212
Hack 50使用Jenkins处理设备多样性 213
50.1创建Jenkins job 215
50.2运行job 217
50.3概要 218
50.4外部链接 219