第一行代码 Android 第2版 🔍
郭霖, Pdg2Pic, 郭霖著
北京:人民邮电出版社, 2016, 2016
中文 [zh] · PDF · 88.1MB · 2016 · 📗 未知类型的图书 · 🚀/upload/zlibzh · Save
描述
封面 1 书名 2 版权 3 前言 4 目录 7 1 12 2 13 3 14 4 15 5 16 6 17 7 18 8 19 9 20 10 21 11 22 12 23 13 24 14 25 15 26 16 27 17 28 18 29 19 30 20 31 21 32 22 33 23 34 24 35 25 36 26 37 27 38 28 39 29 40 30 41 31 42 32 43 33 44 34 45 35 46 36 47 37 48 38 49 39 50 40 51 41 52 42 53 43 54 44 55 45 56 46 57 47 58 48 59 49 60 50 61 51 62 52 63 53 64 54 65 55 66 56 67 57 68 58 69 59 70 60 71 61 72 62 73 63 74 64 75 65 76 66 77 67 78 68 79 69 80 70 81 71 82 72 83 73 84 74 85 75 86 76 87 77 88 78 89 79 90 80 91 81 92 82 93 83 94 84 95 85 96 86 97 87 98 88 99 89 100 90 101 91 102 92 103 93 104 94 105 95 106 96 107 97 108 98 109 99 110 100 111 101 112 102 113 103 114 104 115 105 116 106 117 107 118 108 119 109 120 110 121 111 122 112 123 113 124 114 125 115 126 116 127 117 128 118 129 119 130 120 131 121 132 122 133 123 134 124 135 125 136 126 137 127 138 128 139 129 140 130 141 131 142 132 143 133 144 134 145 135 146 136 147 137 148 138 149 139 150 140 151 141 152 142 153 143 154 144 155 145 156 146 157 147 158 148 159 149 160 150 161 151 162 152 163 153 164 154 165 155 166 156 167 157 168 158 169 159 170 160 171 161 172 162 173 163 174 164 175 165 176 166 177 167 178 168 179 169 180 170 181 171 182 172 183 173 184 174 185 175 186 176 187 177 188 178 189 179 190...
备用文件名
zlibzh/no-category/郭霖, Pdg2Pic, 郭霖著/第一行代码 Android 第2版_44244548.pdf
元数据中的注释
producers:
FreePic2Pdf_Lib - v3.06
FreePic2Pdf_Lib - v3.06
元数据中的注释
Bookmarks: p1 (p1): 第1章 开始启程——你的第一行Android代码
p1-1 (p2): 1.1 了解全貌——Android王国简介
p1-1-1 (p2): 1.1.1 Android系统架构
p1-1-2 (p3): 1.1.2 Android已发布的版本
p1-1-3 (p4): 1.1.3 Android应用开发特色
p1-2 (p5): 1.2 手把手带你搭建开发环境
p1-2-1 (p5): 1.2.1 准备所需要的工具
p1-2-2 (p5): 1.2.2 搭建开发环境
p1-3 (p9): 1.3 创建你的第一个Android项目
p1-3-1 (p9): 1.3.1 创建HelloWorld项目
p1-3-2 (p12): 1.3.2 启动模拟器
p1-3-3 (p15): 1.3.3 运行HelloWorld
p1-3-4 (p16): 1.3.4 分析你的第一个Android程序
p1-3-5 (p22): 1.3.5 详解项目中的资源
p1-3-6 (p23): 1.3.6 详解build.gradle文件
p1-4 (p26): 1.4 前行必备——掌握日志工具的使用
p1-4-1 (p26): 1.4.1 使用Android的日志工具Log
p1-4-2 (p27): 1.4.2 为什么使用Log而不使用System.out
p1-5 (p29): 1.5 小结与点评
p2 (p30): 第2章 先从看得到的入手——探究活动
p2-1 (p30): 2.1 活动是什么
p2-2 (p30): 2.2 活动的基本用法
p2-2-1 (p31): 2.2.1 手动创建活动
p2-2-2 (p32): 2.2.2 创建和加载布局
p2-2-3 (p35): 2.2.3 在AndroidManifest文件中注册
p2-2-4 (p37): 2.2.4 在活动中使用Toast
p2-2-5 (p38): 2.2.5 在活动中使用Menu
p2-2-6 (p40): 2.2.6 销毁一个活动
p2-3 (p41): 2.3 使用Intent在活动之间穿梭
p2-3-1 (p41): 2.3.1 使用显式Intent
p2-3-2 (p44): 2.3.2 使用隐式Intent
p2-3-3 (p46): 2.3.3 更多隐式Intent的用法
p2-3-4 (p50): 2.3.4 向下一个活动传递数据
p2-3-5 (p51): 2.3.5 返回数据给上一个活动
p2-4 (p53): 2.4 活动的生命周期
p2-4-1 (p53): 2.4.1 返回栈
p2-4-2 (p54): 2.4.2 活动状态
p2-4-3 (p55): 2.4.3 活动的生存期
p2-4-4 (p56): 2.4.4 体验活动的生命周期
p2-4-5 (p62): 2.4.5 活动被回收了怎么办
p2-5 (p63): 2.5 活动的启动模式
p2-5-1 (p64): 2.5.1 standard
p2-5-2 (p65): 2.5.2 singleTop
p2-5-3 (p67): 2.5.3 singleTask
p2-5-4 (p68): 2.5.4 singleInstance
p2-6 (p71): 2.6 活动的最佳实践
p2-6-1 (p71): 2.6.1 知晓当前是在哪一个活动
p2-6-2 (p72): 2.6.2 随时随地退出程序
p2-6-3 (p74): 2.6.3 启动活动的最佳写法
p2-7 (p75): 2.7 小结与点评
p3 (p76): 第3章 软件也要拼脸蛋——UI开发的点点滴滴
p3-1 (p76): 3.1 如何编写程序界面
p3-2 (p77): 3.2 常用控件的使用方法
p3-2-1 (p77): 3.2.1 TextView
p3-2-2 (p80): 3.2.2 Button
p3-2-3 (p82): 3.2.3 EditText
p3-2-4 (p86): 3.2.4 ImageView
p3-2-5 (p88): 3.2.5 ProgressBar
p3-2-6 (p91): 3.2.6 AlertDialog
p3-2-7 (p93): 3.2.7 ProgressDialog
p3-3 (p94): 3.3 详解4种基本布局
p3-3-1 (p94): 3.3.1 线性布局
p3-3-2 (p100): 3.3.2 相对布局
p3-3-3 (p103): 3.3.3 帧布局
p3-3-4 (p105): 3.3.4 百分比布局
p3-4 (p108): 3.4 系统控件不够用?创建自定义控件
p3-4-1 (p109): 3.4.1 引入布局
p3-4-2 (p111): 3.4.2 创建自定义控件
p3-5 (p113): 3.5 最常用和最难用的控件——ListView
p3-5-1 (p114): 3.5.1 ListView的简单用法
p3-5-2 (p115): 3.5.2 定制ListView的界面
p3-5-3 (p119): 3.5.3 提升ListView的运行效率
p3-5-4 (p120): 3.5.4 ListView的点击事件
p3-6 (p122): 3.6 更强大的滚动控件——RecyclerView
p3-6-1 (p122): 3.6.1 RecyclerView的基本用法
p3-6-2 (p125): 3.6.2 实现横向滚动和瀑布流布局
p3-6-3 (p130): 3.6.3 RecyclerView的点击事件
p3-7 (p132): 3.7 编写界面的最佳实践
p3-7-1 (p132): 3.7.1 制作Nine-Patch图片
p3-7-2 (p135): 3.7.2 编写精美的聊天界面
p3-8 (p141): 3.8 小结与点评
p4 (p142): 第4章 手机平板要兼顾——探究碎片
p4-1 (p142): 4.1 碎片是什么
p4-2 (p144): 4.2 碎片的使用方式
p4-2-1 (p144): 4.2.1 碎片的简单用法
p4-2-2 (p147): 4.2.2 动态添加碎片
p4-2-3 (p150): 4.2.3 在碎片中模拟返回栈
p4-2-4 (p151): 4.2.4 碎片和活动之间进行通信
p4-3 (p151): 4.3 碎片的生命周期
p4-3-1 (p151): 4.3.1 碎片的状态和回调
p4-3-2 (p153): 4.3.2 体验碎片的生命周期
p4-4 (p156): 4.4 动态加载布局的技巧
p4-4-1 (p156): 4.4.1 使用限定符
p4-4-2 (p159): 4.4.2 使用最小宽度限定符
p4-5 (p160): 4.5 碎片的最佳实践——一个简易版的新闻应用
p4-6 (p169): 4.6 小结与点评
p5 (p170): 第5章 全局大喇叭——详解广播机制
p5-1 (p170): 5.1 广播机制简介
p5-2 (p171): 5.2 接收系统广播
p5-2-1 (p171): 5.2.1 动态注册监听网络变化
p5-2-2 (p174): 5.2.2 静态注册实现开机启动
p5-3 (p177): 5.3 发送自定义广播
p5-3-1 (p177): 5.3.1 发送标准广播
p5-3-2 (p179): 5.3.2 发送有序广播
p5-4 (p183): 5.4 使用本地广播
p5-5 (p185): 5.5 广播的最佳实践——实现强制下线功能
p5-6 (p192): 5.6 Git时间——初识版本控制工具
p5-6-1 (p192): 5.6.1 安装Git
p5-6-2 (p193): 5.6.2 创建代码仓库
p5-6-3 (p195): 5.6.3 提交本地代码
p5-7 (p195): 5.7 小结与点评
p6 (p196): 第6章 数据存储全方案——详解持久化技术
p6-1 (p196): 6.1 持久化技术简介
p6-2 (p197): 6.2 文件存储
p6-2-1 (p197): 6.2.1 将数据存储到文件中
p6-2-2 (p201): 6.2.2 从文件中读取数据
p6-3 (p203): 6.3 SharedPreferences存储
p6-3-1 (p203): 6.3.1 将数据存储到SharedPreferences中
p6-3-2 (p206): 6.3.2 从SharedPreferences中读取数据
p6-3-3 (p208): 6.3.3 实现记住密码功能
p6-4 (p211): 6.4 SQLite数据库存储
p6-4-1 (p211): 6.4.1 创建数据库
p6-4-2 (p216): 6.4.2 升级数据库
p6-4-3 (p219): 6.4.3 添加数据
p6-4-4 (p222): 6.4.4 更新数据
p6-4-5 (p224): 6.4.5 删除数据
p6-4-6 (p225): 6.4.6 查询数据
p6-4-7 (p228): 6.4.7 使用SQL操作数据库
p6-5 (p229): 6.5 使用LitePal操作数据库
p6-5-1 (p229): 6.5.1 LitePal简介
p6-5-2 (p230): 6.5.2 配置LitePal
p6-5-3 (p231): 6.5.3 创建和升级数据库
p6-5-4 (p236): 6.5.4 使用LitePal添加数据
p6-5-5 (p237): 6.5.5 使用LitePal更新数据
p6-5-6 (p240): 6.5.6 使用LitePal删除数据
p6-5-7 (p241): 6.5.7 使用LitePal查询数据
p6-6 (p243): 6.6 小结与点评
p7 (p244): 第7章 跨程序共享数据——探究内容提供器
p7-1 (p244): 7.1 内容提供器简介
p7-2 (p245): 7.2 运行时权限
p7-2-1 (p245): 7.2.1 Android权限机制详解
p7-2-2 (p249): 7.2.2 在程序运行时申请权限
p7-3 (p254): 7.3 访问其他程序中的数据
p7-3-1 (p254): 7.3.1 ContentResolver的基本用法
p7-3-2 (p256): 7.3.2 读取系统联系人
p7-4 (p260): 7.4 创建自己的内容提供器
p7-4-1 (p261): 7.4.1 创建内容提供器的步骤
p7-4-2 (p265): 7.4.2 实现跨程序数据共享
p7-5 (p275): 7.5 Git时间——版本控制工具进阶
p7-5-1 (p275): 7.5.1 忽略文件
p7-5-2 (p276): 7.5.2 查看修改内容
p7-5-3 (p278): 7.5.3 撤销未提交的修改
p7-5-4 (p279): 7.5.4 查看提交记录
p7-6 (p280): 7.6 小结与点评
p8 (p281): 第8章 丰富你的程序——运用手机多媒体
p8-1 (p281): 8.1 将程序运行到手机上
p8-2 (p283): 8.2 使用通知
p8-2-1 (p283): 8.2.1 通知的基本用法
p8-2-2 (p289): 8.2.2 通知的进阶技巧
p8-2-3 (p291): 8.2.3 通知的高级功能
p8-3 (p293): 8.3 调用摄像头和相册
p8-3-1 (p294): 8.3.1 调用摄像头拍照
p8-3-2 (p298): 8.3.2 从相册中选择照片
p8-4 (p303): 8.4 播放多媒体文件
p8-4-1 (p303): 8.4.1 播放音频
p8-4-2 (p307): 8.4.2 播放视频
p8-5 (p311): 8.5 小结与点评
p9 (p312): 第9章 看看精彩的世界——使用网络技术
p9-1 (p312): 9.1 WebView的用法
p9-2 (p314): 9.2 使用HTTP协议访问网络
p9-2-1 (p315): 9.2.1 使用HttpURLConnection
p9-2-2 (p319): 9.2.2 使用OkHttp
p9-3 (p321): 9.3 解析XML格式数据
p9-3-1 (p324): 9.3.1 Pull解析方式
p9-3-2 (p326): 9.3.2 SAX解析方式
p9-4 (p329): 9.4 解析JSON格式数据
p9-4-1 (p330): 9.4.1 使用JSONObjiect
p9-4-2 (p331): 9.4.2 使用GSON
p9-5 (p334): 9.5 网络编程的最佳实践
p9-6 (p338): 9.6 小结与点评
p10 (p339): 第10章 后台默默的劳动者——探究服务
p10-1 (p339): 10.1 服务是什么
p10-2 (p340): 10.2 Android多线程编程
p10-2-1 (p340): 10.2.1 线程的基本用法
p10-2-2 (p341): 10.2.2 在子线程中更新UI
p10-2-3 (p345): 10.2.3 解析异步消息处理机制
p10-2-4 (p347): 10.2.4 使用AsyncTask
p10-3 (p349): 10.3 服务的基本用法
p10-3-1 (p349): 10.3.1 定义一个服务
p10-3-2 (p352): 10.3.2 启动和停止服务
p10-3-3 (p355): 10.3.3 活动和服务进行通信
p10-4 (p359): 10.4 服务的生命周期
p10-5 (p359): 10.5 服务的更多技巧
p10-5-1 (p359): 10.5.1 使用前台服务
p10-5-2 (p361): 10.5.2 使用IntentService
p10-6 (p365): 10.6 服务的最佳实践——完整版的下载示例
p10-7 (p378): 10.7 小结与点评
p11 (p379): 第11章 Android特色开发——基于位置的服务
p11-1 (p379): 11.1 基于位置的服务简介
p11-2 (p380): 11.2 申请API Key
p11-3 (p384): 11.3 使用百度定位
p11-3-1 (p384): 11.3.1 准备LBS SDK
p11-3-2 (p386): 11.3.2 确定自己位置的经纬度
p11-3-3 (p391): 11.3.3 选择定位模式
p11-3-4 (p393): 11.3.4 看得懂的位置信息
p11-4 (p395): 11.4 使用百度地图
p11-4-1 (p395): 11.4.1 让地图显示出来
p11-4-2 (p397): 11.4.2 移动到我的位置
p11-4-3 (p400): 11.4.3 让“我”显示在地图上
p11-5 (p402): 11.5 Git时间——版本控制工具的高级用法
p11-5-1 (p403): 11.5.1 分支的用法
p11-5-2 (p404): 11.5.2 与远程版本库协作
p11-6 (p406): 11.6 小结与点评
p12 (p407): 第12章 最佳的UI体验——MaterialDesign实战
p12-1 (p407): 12.1 什么是Material Design
p12-2 (p408): 12.2 Toolbar
p12-3 (p415): 12.3 滑动菜单
p12-3-1 (p415): 12.3.1 DrawerLayout
p12-3-2 (p418): 12.3.2 NavigationView
p12-4 (p423): 12.4 悬浮按钮和可交互提示
p12-4-1 (p424): 12.4.1 FloatingActionButton
p12-4-2 (p427): 12.4.2 Snackbar
p12-4-3 (p428): 12.4.3 CoordinatorLayout
p12-5 (p430): 12.5 卡片式布局
p12-5-1 (p431): 12.5.1 CardView
p12-5-2 (p437): 12.5.2 AppBarLayout
p12-6 (p440): 12.6 下拉刷新
p12-7 (p443): 12.7 可折叠式标题栏
p12-7-1 (p443): 12.7.1 CollapsingToolbarLayout
p12-7-2 (p453): 12.7.2 充分利用系统状态栏空间
p12-8 (p456): 12.8 小结与点评
p13 (p457): 第13章 继续进阶——你还应该掌握的高级技巧
p13-1 (p457): 13.1 全局获取Context的技巧
p13-2 (p461): 13.2 使用Intent传递对象
p13-2-1 (p461): 13.2.1 Serializable方式
p13-2-2 (p463): 13.2.2 Parcelable方式
p13-3 (p464): 13.3 定制自己的日志工具
p13-4 (p466): 13.4 调试Android程序
p13-5 (p469): 13.5 创建定时任务
p13-5-1 (p469): 13.5.1 Alarm机制
p13-5-2 (p471): 13.5.2 Doze模式
p13-6 (p472): 13.6 多窗口模式编程
p13-6-1 (p473): 13.6.1 进入多窗口模式
p13-6-2 (p475): 13.6.2 多窗口模式下的生命周期
p13-6-3 (p479): 13.6.3 禁用多窗口模式
p13-7 (p481): 13.7 Lambda表达式
p13-8 (p485): 13.8 总结
p14 (p486): 第14章 进入实战——开发酷欧天气
p14-1 (p486): 14.1 功能需求及技术可行性分析
p14-2 (p489): 14.2 Git时间——将代码托管到GitHub上
p14-3 (p494): 14.3 创建数据库和表
p14-4 (p499): 14.4 遍历全国省市县数据
p14-5 (p509): 14.5 显示天气信息
p14-5-1 (p509): 14.5.1 定义GSON实体类
p14-5-2 (p514): 14.5.2 编写天气界面
p14-5-3 (p520): 14.5.3 将天气显示到界面上
p14-5-4 (p526): 14.5.4 获取必应每日一图
p14-6 (p532): 14.6 手动更新天气和切换城市
p14-6-1 (p532): 14.6.1 手动更新天气
p14-6-2 (p535): 14.6.2 切换城市
p14-7 (p540): 14.7 后台自动更新天气
p14-8 (p542): 14.8 修改图标和名称
p14-9 (p543): 14.9 你还可以做的事情
p15 (p545): 第15章 最后一步——将应用发布到360应用商店
p15-1 (p545): 15.1 生成正式签名的APK文件
p15-1-1 (p546): 15.1.1 使用Android Studio生成
p15-1-2 (p548): 15.1.2 使用Gradle生成
p15-1-3 (p551): 15.1.3 生成多渠道APK文件
p15-2 (p554): 15.2 申请360开发者账号
p15-3 (p556): 15.3 发布应用程序
p15-4 (p560): 15.4 嵌入广告进行盈利
p15-4-1 (p560): 15.4.1 注册腾讯广告联盟账号
p15-4-2 (p562): 15.4.2 新建媒体和广告位
p15-4-3 (p564): 15.4.3 接入广告SDK
p15-4-4 (p569): 15.4.4 重新发布应用程序
p15-5 (p570): 15.5 结束语
p1-1 (p2): 1.1 了解全貌——Android王国简介
p1-1-1 (p2): 1.1.1 Android系统架构
p1-1-2 (p3): 1.1.2 Android已发布的版本
p1-1-3 (p4): 1.1.3 Android应用开发特色
p1-2 (p5): 1.2 手把手带你搭建开发环境
p1-2-1 (p5): 1.2.1 准备所需要的工具
p1-2-2 (p5): 1.2.2 搭建开发环境
p1-3 (p9): 1.3 创建你的第一个Android项目
p1-3-1 (p9): 1.3.1 创建HelloWorld项目
p1-3-2 (p12): 1.3.2 启动模拟器
p1-3-3 (p15): 1.3.3 运行HelloWorld
p1-3-4 (p16): 1.3.4 分析你的第一个Android程序
p1-3-5 (p22): 1.3.5 详解项目中的资源
p1-3-6 (p23): 1.3.6 详解build.gradle文件
p1-4 (p26): 1.4 前行必备——掌握日志工具的使用
p1-4-1 (p26): 1.4.1 使用Android的日志工具Log
p1-4-2 (p27): 1.4.2 为什么使用Log而不使用System.out
p1-5 (p29): 1.5 小结与点评
p2 (p30): 第2章 先从看得到的入手——探究活动
p2-1 (p30): 2.1 活动是什么
p2-2 (p30): 2.2 活动的基本用法
p2-2-1 (p31): 2.2.1 手动创建活动
p2-2-2 (p32): 2.2.2 创建和加载布局
p2-2-3 (p35): 2.2.3 在AndroidManifest文件中注册
p2-2-4 (p37): 2.2.4 在活动中使用Toast
p2-2-5 (p38): 2.2.5 在活动中使用Menu
p2-2-6 (p40): 2.2.6 销毁一个活动
p2-3 (p41): 2.3 使用Intent在活动之间穿梭
p2-3-1 (p41): 2.3.1 使用显式Intent
p2-3-2 (p44): 2.3.2 使用隐式Intent
p2-3-3 (p46): 2.3.3 更多隐式Intent的用法
p2-3-4 (p50): 2.3.4 向下一个活动传递数据
p2-3-5 (p51): 2.3.5 返回数据给上一个活动
p2-4 (p53): 2.4 活动的生命周期
p2-4-1 (p53): 2.4.1 返回栈
p2-4-2 (p54): 2.4.2 活动状态
p2-4-3 (p55): 2.4.3 活动的生存期
p2-4-4 (p56): 2.4.4 体验活动的生命周期
p2-4-5 (p62): 2.4.5 活动被回收了怎么办
p2-5 (p63): 2.5 活动的启动模式
p2-5-1 (p64): 2.5.1 standard
p2-5-2 (p65): 2.5.2 singleTop
p2-5-3 (p67): 2.5.3 singleTask
p2-5-4 (p68): 2.5.4 singleInstance
p2-6 (p71): 2.6 活动的最佳实践
p2-6-1 (p71): 2.6.1 知晓当前是在哪一个活动
p2-6-2 (p72): 2.6.2 随时随地退出程序
p2-6-3 (p74): 2.6.3 启动活动的最佳写法
p2-7 (p75): 2.7 小结与点评
p3 (p76): 第3章 软件也要拼脸蛋——UI开发的点点滴滴
p3-1 (p76): 3.1 如何编写程序界面
p3-2 (p77): 3.2 常用控件的使用方法
p3-2-1 (p77): 3.2.1 TextView
p3-2-2 (p80): 3.2.2 Button
p3-2-3 (p82): 3.2.3 EditText
p3-2-4 (p86): 3.2.4 ImageView
p3-2-5 (p88): 3.2.5 ProgressBar
p3-2-6 (p91): 3.2.6 AlertDialog
p3-2-7 (p93): 3.2.7 ProgressDialog
p3-3 (p94): 3.3 详解4种基本布局
p3-3-1 (p94): 3.3.1 线性布局
p3-3-2 (p100): 3.3.2 相对布局
p3-3-3 (p103): 3.3.3 帧布局
p3-3-4 (p105): 3.3.4 百分比布局
p3-4 (p108): 3.4 系统控件不够用?创建自定义控件
p3-4-1 (p109): 3.4.1 引入布局
p3-4-2 (p111): 3.4.2 创建自定义控件
p3-5 (p113): 3.5 最常用和最难用的控件——ListView
p3-5-1 (p114): 3.5.1 ListView的简单用法
p3-5-2 (p115): 3.5.2 定制ListView的界面
p3-5-3 (p119): 3.5.3 提升ListView的运行效率
p3-5-4 (p120): 3.5.4 ListView的点击事件
p3-6 (p122): 3.6 更强大的滚动控件——RecyclerView
p3-6-1 (p122): 3.6.1 RecyclerView的基本用法
p3-6-2 (p125): 3.6.2 实现横向滚动和瀑布流布局
p3-6-3 (p130): 3.6.3 RecyclerView的点击事件
p3-7 (p132): 3.7 编写界面的最佳实践
p3-7-1 (p132): 3.7.1 制作Nine-Patch图片
p3-7-2 (p135): 3.7.2 编写精美的聊天界面
p3-8 (p141): 3.8 小结与点评
p4 (p142): 第4章 手机平板要兼顾——探究碎片
p4-1 (p142): 4.1 碎片是什么
p4-2 (p144): 4.2 碎片的使用方式
p4-2-1 (p144): 4.2.1 碎片的简单用法
p4-2-2 (p147): 4.2.2 动态添加碎片
p4-2-3 (p150): 4.2.3 在碎片中模拟返回栈
p4-2-4 (p151): 4.2.4 碎片和活动之间进行通信
p4-3 (p151): 4.3 碎片的生命周期
p4-3-1 (p151): 4.3.1 碎片的状态和回调
p4-3-2 (p153): 4.3.2 体验碎片的生命周期
p4-4 (p156): 4.4 动态加载布局的技巧
p4-4-1 (p156): 4.4.1 使用限定符
p4-4-2 (p159): 4.4.2 使用最小宽度限定符
p4-5 (p160): 4.5 碎片的最佳实践——一个简易版的新闻应用
p4-6 (p169): 4.6 小结与点评
p5 (p170): 第5章 全局大喇叭——详解广播机制
p5-1 (p170): 5.1 广播机制简介
p5-2 (p171): 5.2 接收系统广播
p5-2-1 (p171): 5.2.1 动态注册监听网络变化
p5-2-2 (p174): 5.2.2 静态注册实现开机启动
p5-3 (p177): 5.3 发送自定义广播
p5-3-1 (p177): 5.3.1 发送标准广播
p5-3-2 (p179): 5.3.2 发送有序广播
p5-4 (p183): 5.4 使用本地广播
p5-5 (p185): 5.5 广播的最佳实践——实现强制下线功能
p5-6 (p192): 5.6 Git时间——初识版本控制工具
p5-6-1 (p192): 5.6.1 安装Git
p5-6-2 (p193): 5.6.2 创建代码仓库
p5-6-3 (p195): 5.6.3 提交本地代码
p5-7 (p195): 5.7 小结与点评
p6 (p196): 第6章 数据存储全方案——详解持久化技术
p6-1 (p196): 6.1 持久化技术简介
p6-2 (p197): 6.2 文件存储
p6-2-1 (p197): 6.2.1 将数据存储到文件中
p6-2-2 (p201): 6.2.2 从文件中读取数据
p6-3 (p203): 6.3 SharedPreferences存储
p6-3-1 (p203): 6.3.1 将数据存储到SharedPreferences中
p6-3-2 (p206): 6.3.2 从SharedPreferences中读取数据
p6-3-3 (p208): 6.3.3 实现记住密码功能
p6-4 (p211): 6.4 SQLite数据库存储
p6-4-1 (p211): 6.4.1 创建数据库
p6-4-2 (p216): 6.4.2 升级数据库
p6-4-3 (p219): 6.4.3 添加数据
p6-4-4 (p222): 6.4.4 更新数据
p6-4-5 (p224): 6.4.5 删除数据
p6-4-6 (p225): 6.4.6 查询数据
p6-4-7 (p228): 6.4.7 使用SQL操作数据库
p6-5 (p229): 6.5 使用LitePal操作数据库
p6-5-1 (p229): 6.5.1 LitePal简介
p6-5-2 (p230): 6.5.2 配置LitePal
p6-5-3 (p231): 6.5.3 创建和升级数据库
p6-5-4 (p236): 6.5.4 使用LitePal添加数据
p6-5-5 (p237): 6.5.5 使用LitePal更新数据
p6-5-6 (p240): 6.5.6 使用LitePal删除数据
p6-5-7 (p241): 6.5.7 使用LitePal查询数据
p6-6 (p243): 6.6 小结与点评
p7 (p244): 第7章 跨程序共享数据——探究内容提供器
p7-1 (p244): 7.1 内容提供器简介
p7-2 (p245): 7.2 运行时权限
p7-2-1 (p245): 7.2.1 Android权限机制详解
p7-2-2 (p249): 7.2.2 在程序运行时申请权限
p7-3 (p254): 7.3 访问其他程序中的数据
p7-3-1 (p254): 7.3.1 ContentResolver的基本用法
p7-3-2 (p256): 7.3.2 读取系统联系人
p7-4 (p260): 7.4 创建自己的内容提供器
p7-4-1 (p261): 7.4.1 创建内容提供器的步骤
p7-4-2 (p265): 7.4.2 实现跨程序数据共享
p7-5 (p275): 7.5 Git时间——版本控制工具进阶
p7-5-1 (p275): 7.5.1 忽略文件
p7-5-2 (p276): 7.5.2 查看修改内容
p7-5-3 (p278): 7.5.3 撤销未提交的修改
p7-5-4 (p279): 7.5.4 查看提交记录
p7-6 (p280): 7.6 小结与点评
p8 (p281): 第8章 丰富你的程序——运用手机多媒体
p8-1 (p281): 8.1 将程序运行到手机上
p8-2 (p283): 8.2 使用通知
p8-2-1 (p283): 8.2.1 通知的基本用法
p8-2-2 (p289): 8.2.2 通知的进阶技巧
p8-2-3 (p291): 8.2.3 通知的高级功能
p8-3 (p293): 8.3 调用摄像头和相册
p8-3-1 (p294): 8.3.1 调用摄像头拍照
p8-3-2 (p298): 8.3.2 从相册中选择照片
p8-4 (p303): 8.4 播放多媒体文件
p8-4-1 (p303): 8.4.1 播放音频
p8-4-2 (p307): 8.4.2 播放视频
p8-5 (p311): 8.5 小结与点评
p9 (p312): 第9章 看看精彩的世界——使用网络技术
p9-1 (p312): 9.1 WebView的用法
p9-2 (p314): 9.2 使用HTTP协议访问网络
p9-2-1 (p315): 9.2.1 使用HttpURLConnection
p9-2-2 (p319): 9.2.2 使用OkHttp
p9-3 (p321): 9.3 解析XML格式数据
p9-3-1 (p324): 9.3.1 Pull解析方式
p9-3-2 (p326): 9.3.2 SAX解析方式
p9-4 (p329): 9.4 解析JSON格式数据
p9-4-1 (p330): 9.4.1 使用JSONObjiect
p9-4-2 (p331): 9.4.2 使用GSON
p9-5 (p334): 9.5 网络编程的最佳实践
p9-6 (p338): 9.6 小结与点评
p10 (p339): 第10章 后台默默的劳动者——探究服务
p10-1 (p339): 10.1 服务是什么
p10-2 (p340): 10.2 Android多线程编程
p10-2-1 (p340): 10.2.1 线程的基本用法
p10-2-2 (p341): 10.2.2 在子线程中更新UI
p10-2-3 (p345): 10.2.3 解析异步消息处理机制
p10-2-4 (p347): 10.2.4 使用AsyncTask
p10-3 (p349): 10.3 服务的基本用法
p10-3-1 (p349): 10.3.1 定义一个服务
p10-3-2 (p352): 10.3.2 启动和停止服务
p10-3-3 (p355): 10.3.3 活动和服务进行通信
p10-4 (p359): 10.4 服务的生命周期
p10-5 (p359): 10.5 服务的更多技巧
p10-5-1 (p359): 10.5.1 使用前台服务
p10-5-2 (p361): 10.5.2 使用IntentService
p10-6 (p365): 10.6 服务的最佳实践——完整版的下载示例
p10-7 (p378): 10.7 小结与点评
p11 (p379): 第11章 Android特色开发——基于位置的服务
p11-1 (p379): 11.1 基于位置的服务简介
p11-2 (p380): 11.2 申请API Key
p11-3 (p384): 11.3 使用百度定位
p11-3-1 (p384): 11.3.1 准备LBS SDK
p11-3-2 (p386): 11.3.2 确定自己位置的经纬度
p11-3-3 (p391): 11.3.3 选择定位模式
p11-3-4 (p393): 11.3.4 看得懂的位置信息
p11-4 (p395): 11.4 使用百度地图
p11-4-1 (p395): 11.4.1 让地图显示出来
p11-4-2 (p397): 11.4.2 移动到我的位置
p11-4-3 (p400): 11.4.3 让“我”显示在地图上
p11-5 (p402): 11.5 Git时间——版本控制工具的高级用法
p11-5-1 (p403): 11.5.1 分支的用法
p11-5-2 (p404): 11.5.2 与远程版本库协作
p11-6 (p406): 11.6 小结与点评
p12 (p407): 第12章 最佳的UI体验——MaterialDesign实战
p12-1 (p407): 12.1 什么是Material Design
p12-2 (p408): 12.2 Toolbar
p12-3 (p415): 12.3 滑动菜单
p12-3-1 (p415): 12.3.1 DrawerLayout
p12-3-2 (p418): 12.3.2 NavigationView
p12-4 (p423): 12.4 悬浮按钮和可交互提示
p12-4-1 (p424): 12.4.1 FloatingActionButton
p12-4-2 (p427): 12.4.2 Snackbar
p12-4-3 (p428): 12.4.3 CoordinatorLayout
p12-5 (p430): 12.5 卡片式布局
p12-5-1 (p431): 12.5.1 CardView
p12-5-2 (p437): 12.5.2 AppBarLayout
p12-6 (p440): 12.6 下拉刷新
p12-7 (p443): 12.7 可折叠式标题栏
p12-7-1 (p443): 12.7.1 CollapsingToolbarLayout
p12-7-2 (p453): 12.7.2 充分利用系统状态栏空间
p12-8 (p456): 12.8 小结与点评
p13 (p457): 第13章 继续进阶——你还应该掌握的高级技巧
p13-1 (p457): 13.1 全局获取Context的技巧
p13-2 (p461): 13.2 使用Intent传递对象
p13-2-1 (p461): 13.2.1 Serializable方式
p13-2-2 (p463): 13.2.2 Parcelable方式
p13-3 (p464): 13.3 定制自己的日志工具
p13-4 (p466): 13.4 调试Android程序
p13-5 (p469): 13.5 创建定时任务
p13-5-1 (p469): 13.5.1 Alarm机制
p13-5-2 (p471): 13.5.2 Doze模式
p13-6 (p472): 13.6 多窗口模式编程
p13-6-1 (p473): 13.6.1 进入多窗口模式
p13-6-2 (p475): 13.6.2 多窗口模式下的生命周期
p13-6-3 (p479): 13.6.3 禁用多窗口模式
p13-7 (p481): 13.7 Lambda表达式
p13-8 (p485): 13.8 总结
p14 (p486): 第14章 进入实战——开发酷欧天气
p14-1 (p486): 14.1 功能需求及技术可行性分析
p14-2 (p489): 14.2 Git时间——将代码托管到GitHub上
p14-3 (p494): 14.3 创建数据库和表
p14-4 (p499): 14.4 遍历全国省市县数据
p14-5 (p509): 14.5 显示天气信息
p14-5-1 (p509): 14.5.1 定义GSON实体类
p14-5-2 (p514): 14.5.2 编写天气界面
p14-5-3 (p520): 14.5.3 将天气显示到界面上
p14-5-4 (p526): 14.5.4 获取必应每日一图
p14-6 (p532): 14.6 手动更新天气和切换城市
p14-6-1 (p532): 14.6.1 手动更新天气
p14-6-2 (p535): 14.6.2 切换城市
p14-7 (p540): 14.7 后台自动更新天气
p14-8 (p542): 14.8 修改图标和名称
p14-9 (p543): 14.9 你还可以做的事情
p15 (p545): 第15章 最后一步——将应用发布到360应用商店
p15-1 (p545): 15.1 生成正式签名的APK文件
p15-1-1 (p546): 15.1.1 使用Android Studio生成
p15-1-2 (p548): 15.1.2 使用Gradle生成
p15-1-3 (p551): 15.1.3 生成多渠道APK文件
p15-2 (p554): 15.2 申请360开发者账号
p15-3 (p556): 15.3 发布应用程序
p15-4 (p560): 15.4 嵌入广告进行盈利
p15-4-1 (p560): 15.4.1 注册腾讯广告联盟账号
p15-4-2 (p562): 15.4.2 新建媒体和广告位
p15-4-3 (p564): 15.4.3 接入广告SDK
p15-4-4 (p569): 15.4.4 重新发布应用程序
p15-5 (p570): 15.5 结束语
开源日期
2024-06-27
🚀 快速下载
成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️
如果您在本月捐款,您将获得双倍的快速下载次数。
🐢 低速下载
由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)
- 低速服务器(合作方提供) #1 (稍快但需要排队)
- 低速服务器(合作方提供) #2 (稍快但需要排队)
- 低速服务器(合作方提供) #3 (稍快但需要排队)
- 低速服务器(合作方提供) #4 (稍快但需要排队)
- 低速服务器(合作方提供) #5 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #6 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #7 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #8 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #9 (无需排队,但可能非常慢)
- 下载后: 在我们的查看器中打开
所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
外部下载
-
对于大文件,我们建议使用下载管理器以防止中断。
推荐的下载管理器:JDownloader -
您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
推荐的电子书阅读器:Anna的档案在线查看器、ReadEra和Calibre -
使用在线工具进行格式转换。
推荐的转换工具:CloudConvert和PrintFriendly -
您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
推荐的工具:亚马逊的“发送到 Kindle”和djazz 的“发送到 Kobo/Kindle” -
支持作者和图书馆
✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。
下面的文字仅以英文继续。
总下载量:
“文件的MD5”是根据文件内容计算出的哈希值,并且基于该内容具有相当的唯一性。我们这里索引的所有影子图书馆都主要使用MD5来标识文件。
一个文件可能会出现在多个影子图书馆中。有关我们编译的各种数据集的信息,请参见数据集页面。
有关此文件的详细信息,请查看其JSON 文件。 Live/debug JSON version. Live/debug page.