安辉,目前就职于上海翼成信息视频部,负责Android平台,工作之余喜欢写技术文章,是CSDN博客专家,文章技术含量高,单篇文章上万阅读量,深受广大开发者喜爱。

本书使用Android Studio 3.0开发环境,同时适配新版的Android 8.0操作系统,由浅入深地学习Android App的开发。全文共分为10章,涵盖Android Studio的开发环境搭建、Android控件的使用、四大组件的使用、Fragment(碎片)、多线程开发、网络编程与数据存储等内容。*后通过项目实战,对所学知识点融会贯通,进一步增强开发能力。 本书内容通俗易懂,案例丰富,不仅适用于Android开发的广大从业人员、App开发的业余爱好者,也可作为大中专院校与培训机构的培训教程。
AndroidApp开发从入门到精通-明生
------------
目 录

第1章 Android Studio的介绍以及使用 1

1.1 探索AndroidStudio 1

1.1.1 项目结构 2

1.1.2 Android Studio主窗口 3

1.1.3 工具窗口 4

1.1.4 代码自动完成 4

1.1.5 样式和格式化 5

1.1.6 版本控制基础知识 5

1.1.7 Gradle构建系统 6

1.1.8 Debug调试 6

1.1.9 性能监视器 7

1.1.10 分配跟踪器 7

1.1.11 数据文件访问 7

1.1.12 代码检查 7

1.1.13 日志消息 8

1.2 下载与安装AndroidStudio 8

1.2.1 下载Android Studio 8

1.2.2 开始安装 9

1.3 Android Studio使用 13

1.3.1 项目结构 13

1.3.2 创建项目 16

1.3.3 Android Studio自带模拟器运行项目 20

1.3.4 使用Genymotion模拟器运行 22

1.3.5 真机运行 25

1.4 调试项目 27

1.4.1 Debug断点调试 27

1.4.2 日志调试 29

1.5 Eclipse项目迁移至Android Studio 30

1.5.1 Eclipse项目迁移条件 30

1.5.2 将Eclipse项目导入Android Studio 30

1.5.3 验证导入是否成功 32

1.6 创建Android库 32

1.6.1 创建库模块 33

1.6.2 将库模块导入到项目中 33

1.6.3 将应用模块转换为库模块 33

1.6.4 开发库模块的注意事项 34

1.6.5 AAR文件详解 34

1.7 项目依赖库 35

1.7.1 依赖本地库 35

1.7.2 在线依赖库 36

1.8 应用清单文件 36

1.8.1 清单文件结构 37

1.8.2 文件约定 38

1.9 常用快捷键 39

1.10 应用签名 40

1.10.1 证书和密钥库 40

1.10.2 调试项目时签名 41

1.10.3 正式签名 41

1.11 多渠道打包 43

1.11.1 代码实现 43

1.11.2 测试 44

1.12 ADB详解 45

1.12.1 Mac下adb加入环境变量(Windows电脑自行搜索) 45

1.12.2 adb常用命令 46

1.13 Android Studio 3.0新特性 46

1.13.1 Android Gradle插件3.0.0 47

1.13.2 手动更新Gradle版本 47

1.13.3 Kotlin支持 47

1.13.4 Java 8支持 48

1.13.5 Android Profiler 48

1.13.6 CPU Profiler 49

1.13.7 Memory Profiler 49

1.13.8 Network Profiler 50

1.13.9 APK profiling 50

1.13.10 Device File Explorer 51

1.13.11 Adaptive Icons wizard 51

1.13.12 Google的Maven存储库 52

1.14 本章小结 52

第2章 Android控件 53

2.1 View介绍 53

2.1.1 自定义View 54

2.1.2 自定义属性 58

2.2 ViewGroup介绍 59

2.3 几种常用的布局 67

2.3.1 LinearLayout(线性布局) 67

2.3.2 RelativeLayout(相对布局) 70

2.3.3 FrameLayout(框架布局) 72

2.3.4 三大布局嵌套以及动态添加View 73

2.4 初级控件的使用 75

2.4.1 TextView(文本视图) 76

2.4.2 Button(按钮) 79

2.4.3 EditText(文本编辑框) 83

2.4.4 ImageView(图像视图) 86

2.4.5 RadioButton(单选按钮) 87

2.4.6 Checkbox(复选框) 89

2.4.7 ProgressBar(进度条) 91

2.4.8 ProgressDialog(进度对话框) 93

2.4.9 AlertDialog(简单对话框) 94

2.4.10 PopupWindow(弹出式窗口) 96

2.4.11 DialogFragment 99

2.5 Android高级控件的使用 102

2.5.1 ListView(列表视图) 102

2.5.2 GridView(网格视图) 109

2.5.3 RecyclerView(循环视图) 113

2.5.4 SwipeRefreshLayout(下拉刷新) 127

2.5.5 ViewPager(翻页视图) 131

2.6 通过xml文件修饰View 134

2.6.1 shapes(设置圆角、边框、填充色、渐变色) 134

2.6.2 selector(设置点击、选中点击效果) 136

2.6.3 layer-list(把item按照顺序层叠显示) 137

2.7 本章小结 138

第3章 Android四大组件 139

3.1 Activity(活动) 139

3.1.1 Activity的生命周期 139

3.1.2 启动Activity的两种方式 142

3.1.3 在Activity中使用Toast 143

3.1.4 Activity启动与退出动画 147

3.1.5 Activity销毁 156

3.1.6 Activity与Activity之间传递数据 158

3.1.7 Activity的软键盘弹出方式 160

3.1.8 Activity任务栈 161

3.1.9 Activity四种启动模式 162

3.2 Service(服务) 164

3.2.1 Activity中启动Service以及销毁Service 164

3.2.2 Activity与Service通信 167

3.3 Broadcast Receiver(广播接收器) 171

3.3.1 动态注册广播 171

3.3.2 静态注册广播 172

3.3.3 广播基本总结 174

3.3.4 应用内广播LocalBroadcastManager 174

3.4 ContentProvider(内容提供者) 175

3.5 本章小结 176

第4章 Fragment探索 177

4.1 Fragment简介 177

4.2 Fragment生命周期 177

4.3 FragmentManager与 FragmentTransaction的使用 182

4.3.1 FragmentManager(Fragment管理类)的使用 182

4.3.2 FragmentTransaction(Fragment事务)的使用 183

4.4 Activity动态操作Fragment 183

4.5 Fragment与Activity交互数据 186

4.6 Fragment案例——实现底部导航栏 187

4.6.1 分析需求 188

4.6.2 代码实现 188

4.7 本章小结 195

第5章 Android多线程开发 196

5.1 多线程的创建 196

5.2 子线程中更新UI的四种方法 197

5.2.1 用Activity对象的runOnUiThread方法 197

5.2.2 View.post的使用 199

5.3 Handler的使用 199

5.3.1 为什么要用Handler 199

5.3.2 使用Handler 200

5.3.3 Handler、Looper与MessageQueue三者的关系 202

5.4 使用AsyncTask创建后台线程 207

5.5 线程池的使用 208

第6章 Android网络编程与数据存储 216

6.1 基于Android平台的HTTP通信 216

6.1.1 使用Get方式向服务器提交数据 217

6.1.2 使用Post方式向服务器提交数据 218

6.1.3 使用GSON解析JSON格式的数据 219

6.1.4 OkHttp开源项目的使用 221

6.2 数据存储 243

6.2.1 SharedPreferences 243

6.2.2 SQLite数据库 244

6.2.3 文件存储 247

6.3 本章小结 247

第7章 Android高级应用 248

7.1 Notification(通知)使用 248

7.1.1 创建通知 249

7.1.2 通知优先级 250

7.1.3 更新通知 250

7.1.4 删除通知 251

7.1.5 自定义通知布局 251

7.2 多媒体开发 252

7.2.1 播放音频 252

7.2.2 播放视频的三种方式 257

7.3 调用浏览器打开网页 262

7.3.1 启动Android默认浏览器 262

7.3.2 启动指定浏览器打开 262

7.3.3 优先使用 262

7.4 WebView的使用 263

7.4.1 WebView加载网页的四种方式 263

7.4.2 WebViewClient与WebChromeClient的区别 263

7.4.3 WebView的简单使用 264

7.5 复制和粘贴 268

7.5.1 复制文本 268

7.5.2 粘贴文本 268

7.6 定位的使用 268

7.6.1 定位的三种方式 269

7.6.2 定位的相关类 270

7.6.3 GPS获取经纬度 271

7.6.4 根据经纬度反向编码获取地址 273

7.7 NDK与JNI开发 275

7.7.1 什么是NDK 275

7.7.2 NDK下载 276

7.7.3 在Mac下加入NDK环境变量 277

7.7.4 什么是JNI 278

7.7.5 NDK与JNI的简单使用 278

7.8 使用SourceTree上传项目到GitHub 281

7.8.1 什么是Git 281

7.8.2 什么是GitHub 282

7.8.3 什么是SourceTree 283

7.8.4 使用SourceTree操作GitHub 283

7.9 将项目发布到JCenter 292

第8章 Android 5.X、6.X、7.X、8.X各版本特性 299

8.1 Android 5.X版本新特性 299

8.1.1 悬挂式Notification 299

8.1.2 利用Drawerlayout和NavigationView实现侧边栏 301

8.1.3 TabLayout和ViewPager结合使用 304

8.1.4 CoordinatorLayout、FloatingActionButton和Snackbar的使用 306

8.2 Android 6.X版本新特性 307

8.3 Android 7.X版本新特性 310

8.3.1 多窗口支持 311

8.3.2 FileProvider解决FileUriExposedException 312

8.4 Android 8.X版本新特性 314

第9章 常用功能模板 319

9.1 启动页与首次启动的引导页 319

9.1.1 需求分析 321

9.1.2 代码实现 321

9.1.3 启动页 321

9.1.4 引导页 323

9.2 检查更新并下载安装 327

9.3 Banner广告轮播图 332

9.3.1 运行效果图 332

9.3.2 代码实现 333

9.4 微信登录、分享与支付 337

9.4.1 代码实现 337

9.4.2 微信登录 342

9.4.3 微信分享 344

9.4.4 微信支付 344

9.4.5 签名 346

9.4.6 微信开放平台官网的后台配置 347

9.4.7 运行软件 347

9.4.8 微信官方开发文档 348

9.5 百度地图 349

9.5.1 百度定位SDK 350

9.5.2 百度地图SDK 357

第10章 实现开发者头条 364

10.1 启动页实现 364

10.1.1 启动页的目标效果 364

10.1.2 代码实现 365

10.2 使用DrawerLayout控件实现侧滑菜单栏 370

10.2.1 侧滑菜单的目标效果 370

10.2.2 代码实现 370

10.3 开发者头条首页实现 377

10.3.1 源代码的实现 378

10.3.2 精选Fragment 382

10.4 开发者头条首页优化 387

10.4.1 需要在线依赖 388

10.4.2 标题栏和三个切换选项卡 388

10.4.3 分析TabLayout切换源代码 391

10.4.4 精选文章列表控件从ListView替换成RecyclerView 393

10.5 RecyclerView实现下拉刷新和上拉加载更多 395

10.5.1 实现步骤 396

10.5.2 实现详解 396

I 作者相关

发表评论