具体描述
《第一行代码——Android》是Android初学者的最佳入门书。全书由浅入深、系统全面地讲解了Android软件开发的方方面面。第1章带领你搭建Android开发环境,完成你的第一个Android程序。第2章至第13章完整地讲解了Android开发中的各种基本知识和关键技术,包括四大组件、UI、碎片、广播机制、数据存储、服务、多媒体、网络、定位服务、传感器,以及分布式版本控制系统Git的使用等等。在部分章节会穿插相关技术的高级使用技巧。第14章和第15章则将带领你编写一个完整的项目,教会你如何打包、上架、嵌入广告并获得盈利。《第一行代码——Android》内容通俗易懂,既适合初学者循序渐进地阅读,也可作为一本参考手册,随时查阅。
作者简介
郭霖,Android软件开发工程师。从事Android开发工作四年,有着丰富的项目实战经验,负责及参与开发过多款移动应用与游戏,对Android系统架构及应用层开发有着深入的理解。2013年3月开始,在CSDN上发表Android技术相关博文,很快就获得了大量网友的好评。短短一年时间博客访问量超过50万次,评价近3000条。荣获CSDN认证专家,并被评选为2013年CSDN年度博客之星。现就职于蜗牛移动,继续从事Android开发工作。
目录信息
1.1 了解全貌,Android王国简介 2
1.1.1 Android系统架构 2
1.1.2 Android已发布的版本 3
1.1.3 Android应用开发特色 4
1.2 手把手带你搭建开发环境 5
1.2.1 准备所需要的软件 5
1.2.2 搭建开发环境 6
1.3 创建你的第一个Android项目 11
1.3.1 创建HelloWorld项目 11
1.3.2 运行HelloWorld 14
1.3.3 分析你的第一个Android程序 16
1.3.4 详解项目中的资源 20
1.4 前行必备,掌握日志工具的使用 22
1.4.1 添加LogCat到你的Eclipse 22
1.4.2 使用Android的日志工具Log 23
1.4.3 为什么使用Log而不使用System.out 24
1.5 小结与点评 26
第2章 先从看得到的入手,探究活动 28
2.1 活动是什么 28
2.2 活动的基本用法 28
2.2.1 手动创建活动 29
2.2.2 创建和加载布局 30
2.2.3 在AndroidManifest文件中注册 34
2.2.4 隐藏标题栏 35
2.2.5 在活动中使用Toast 36
2.2.6 在活动中使用Menu 38
2.2.7 销毁一个活动 41
2.3 使用Intent在活动之间穿梭 41
2.3.1 使用显式Intent 41
2.3.2 使用隐式Intent 44
2.3.3 更多隐式Intent的用法 46
2.3.4 向下一个活动传递数据 51
2.3.5 返回数据给上一个活动 52
2.4 活动的生命周期 55
2.4.1 返回栈 55
2.4.2 活动状态 56
2.4.3 活动的生存期 56
2.4.4 体验活动的生命周期 58
2.4.5 活动被回收了怎么办 66
2.5 活动的启动模式 68
2.5.1 standard 68
2.5.2 singleTop 70
2.5.3 singleTask 72
2.5.4 singleInstance 74
2.6 活动的最佳实践 77
2.6.1 知晓当前是在哪一个活动 77
2.6.2 随时随地退出程序 78
2.6.3 启动活动的最佳写法 80
2.7 小结与点评 81
第3章 软件也要拼脸蛋,UI开发的点点滴滴 83
3.1 该如何编写程序界面 83
3.2 常见控件的使用方法 84
3.2.1 TextView 84
3.2.2 Button 88
3.2.3 EditText 90
3.2.4 ImageView 95
3.2.5 ProgressBar 97
3.2.6 AlertDialog 101
3.2.7 ProgressDialog 103
3.3 详解四种基本布局 105
3.3.1 LinearLayout 105
3.3.2 RelativeLayout 112
3.3.3 FrameLayout 116
3.3.4 TableLayout 117
3.4 系统控件不够用?创建自定义控件 120
3.4.1 引入布局 121
3.4.2 创建自定义控件 124
3.5 最常用和最难用的控件——ListView 127
3.5.1 ListView的简单用法 127
3.5.2 定制ListView的界面 129
3.5.3 提升ListView的运行效率 133
3.5.4 ListView的点击事件 135
3.6 单位和尺寸 137
3.6.1 px和pt的窘境 137
3.6.2 dp和sp来帮忙 139
3.7 编写界面的最佳实践 141
3.7.1 制作Nine-Patch图片 141
3.7.2 编写精美的聊天界面 145
3.8 小结与点评 151
第4章 手机平板要兼顾,探究碎片 153
4.1 碎片是什么 153
4.2 碎片的使用方式 155
4.2.1 碎片的简单用法 157
4.2.2 动态添加碎片 160
4.2.3 在碎片中模拟返回栈 163
4.2.4 碎片和活动之间进行通信 164
4.3 碎片的生命周期 165
4.3.1 碎片的状态和回调 165
4.3.2 体验碎片的生命周期 168
4.4 动态加载布局的技巧 171
4.4.1 使用限定符 171
4.4.2 使用最小宽度限定符 174
4.5 碎片的最佳实践——一个简易版的新闻应用 175
4.6 小结与点评 187
第5章 全局大喇叭,详解广播机制 188
5.1 广播机制简介 188
5.2 接收系统广播 189
5.2.1 动态注册监听网络变化 190
5.2.2 静态注册实现开机启动 194
5.3 发送自定义广播 196
5.3.1 发送标准广播 197
5.3.2 发送有序广播 199
5.4 使用本地广播 202
5.5 广播的最佳实践——实现强制下线功能 205
5.6 Git时间,初识版本控制工具 215
5.6.1 安装Git 215
5.6.2 创建代码仓库 216
5.6.3 提交本地代码 218
5.7 小结与点评 218
第6章 数据存储全方案,详解持久化技术 220
6.1 持久化技术简介 220
6.2 文件存储 221
6.2.1 将数据存储到文件中 221
6.2.2 从文件中读取数据 225
6.3 SharedPreferences存储 228
6.3.1 将数据存储到SharedPreferences中 229
6.3.2 从SharedPreferences中读取数据 232
6.3.3 实现记住密码功能 234
6.4 SQLite数据库存储 238
6.4.1 创建数据库 239
6.4.2 升级数据库 245
6.4.3 添加数据 248
6.4.4 更新数据 251
6.4.5 删除数据 254
6.4.6 查询数据 256
6.4.7 使用SQL操作数据库 260
6.5 SQLite数据库的最佳实践 260
6.5.1 使用事务 261
6.5.2 升级数据库的最佳写法 263
6.6 小结与点评 266
第7章 跨程序共享数据,探究内容提供器 268
7.1 内容提供器简介 268
7.2 访问其他程序中的数据 269
7.2.1 ContentResolver的基本用法 269
7.2.2 读取系统联系人 271
7.3 创建自己的内容提供器 275
7.3.1 创建内容提供器的步骤 276
7.3.2 实现跨程序数据共享 281
7.4 Git时间,版本控制工具进阶 292
7.4.1 忽略文件 292
7.4.2 查看修改内容 293
7.4.3 撤销未提交的修改 295
7.4.4 查看提交记录 296
7.5 小结与点评 297
第8章 丰富你的程序,运用手机多媒体 298
8.1 使用通知 298
8.1.1 通知的基本用法 298
8.1.2 通知的高级技巧 305
8.2 接收和发送短信 307
8.2.1 接收短信 308
8.2.2 拦截短信 313
8.2.3 发送短信 314
8.3 调用摄像头和相册 320
8.3.1 将程序运行到手机上 320
8.3.2 调用摄像头拍照 322
8.3.3 从相册中选择照片 327
8.4 播放多媒体文件 331
8.4.1 播放音频 332
8.4.2 播放视频 336
8.5 小结与点评 340
第9章 后台默默的劳动者,探究服务 341
9.1 服务是什么 341
9.2 Android多线程编程 341
9.2.1 线程的基本用法 342
9.2.2 在子线程中更新UI 343
9.2.3 解析异步消息处理机制 348
9.2.4 使用AsyncTask 349
9.3 服务的基本用法 353
9.3.1 定义一个服务 353
9.3.2 启动和停止服务 355
9.3.3 活动和服务进行通信 359
9.4 服务的生命周期 363
9.5 服务的更多技巧 364
9.5.1 使用前台服务 364
9.5.2 使用IntentService 367
9.6 服务的最佳实践——后台执行的定时任务 371
9.7 小结与点评 376
第10章 看看精彩的世界,使用网络技术 377
10.1 WebView的用法 377
10.2 使用HTTP协议访问网络 380
10.2.1 使用HttpURLConnection 380
10.2.2 使用HttpClient 385
10.3 解析XML格式数据 388
10.3.1 Pull解析方式 391
10.3.2 SAX解析方式 394
10.4 解析JSON格式数据 398
10.4.1 使用JSONObject 399
10.4.2 使用GSON 401
10.5 网络编程的最佳实践 404
10.6 小结与点评 408
第11章 Android特色开发,基于位置的服务 409
11.1 基于位置的服务简介 409
11.2 找到自己的位置 409
11.2.1 LocationManager的基本用法 410
11.2.2 确定自己位置的经纬度 412
11.3 反向地理编码,看得懂的位置信息 415
11.3.1 Geocoding API的用法 416
11.3.2 对经纬度进行解析 417
11.4 使用百度地图 420
11.4.1 申请API Key 420
11.4.2 让地图显示出来 423
11.4.3 定位到我的位置 427
11.4.4 使用覆盖物来增加更多功能 430
11.5 Git时间,版本控制工具的高级用法 434
11.5.1 分支的用法 434
11.5.2 与远程版本库协作 437
11.6 小结与点评 438
第12章 Android特色开发,使用传感器 439
12.1 传感器简介 439
12.2 光照传感器 439
12.2.1 光照传感器的用法 440
12.2.2 制作简易光照探测器 441
12.3 加速度传感器 443
12.3.1 加速度传感器的用法 443
12.3.2 模仿微信摇一摇 444
12.4 方向传感器 446
12.4.1 方向传感器的用法 446
12.4.2 制作简易指南针 448
12.5 小结与点评 453
第13章 继续进阶,你还应该掌握的高级技巧 455
13.1 全局获取Context的技巧 455
13.2 使用Intent传递对象 459
13.2.1 Serializable方式 459
13.2.2 Parcelable方式 461
13.3 定制自己的日志工具 462
13.4 调试Android程序 464
13.5 编写测试用例 468
13.5.1 创建测试工程 468
13.5.2 进行单元测试 471
13.6 总结 474
第14章 进入实战,开发酷欧天气 476
14.1 功能需求及技术可行性分析 476
14.2 Git时间,将代码托管到GitHub上 478
14.3 创建数据库和表 485
14.4 遍历全国省市县数据 494
14.5 显示天气信息 507
14.6 切换城市和手动更新天气 519
14.7 后台自动更新天气 523
14.8 修改图标和名称 526
14.9 你还可以做的事情 528
第15章 最后一步,将应用发布到Google Play 530
15.1 生成正式签名的APK文件 530
15.2 申请Google Play账号 533
15.3 上传和发布应用程序 534
15.4 嵌入广告进行盈利 541
15.4.1 注册有米账号和验证身份 542
15.4.2 下载和接入有米SDK 544
15.4.3 重新发布应用程序 550
15.5 结束语 553
· · · · · · (收起)
读后感
学习 Android 开发的计划制定业已四年,期间断断续续接触一些相关的知识,不过都中途放弃。这是个人第一本真正通读并全程上机实验的Android入门教材。覆盖了Android开发中的方方面面,虽然章节涉入不深,但是可以全局了解Android开发。不过使用的是Android Studio v1.5,这版本...
写作风格对新手非常友好,可以很快熟悉Android的开发方式,知识点讲的很明白,非常适合入门。 总体内容安排比较合理,大多数人在Android开发中用到的方方面面都有涉及,个别章节特别针对中国读者。 很少涉及深入的东西,基本是讲个七八成,倒是够大多数人用的了。 另外,似乎没...
先引用自己对这本书的短评【自我陶醉一下】: 《第一行代码》,真正地做到了——第一行代码,对Android入门者而言。 对于这本书,若要写短评的话,我借用《动物庄园》作者乔治•奥威尔对自己的书的评价,来“扮演”《第一行代码》作者郭霖,来评价《第一行代码》。 即: I...
2016-05-01 很不错的入门书,知乎、豆瓣、还有一些安卓开发论坛上大家鼎力推荐,名副其实。这本书循序渐进地介绍了ANdroid的知识点,看完能够对Android的编程有基本的概念,也能写一些简单的APP了。书中的例子虽然简单,但是过一遍的时候还是会遇到不少小坑;而实践完书...
对新手友好,只要java入门,就可以使用这本书做Android开发入门,可以有一个好的开始。 我花了两个月的时间调完了除最后一章之外的所有代码,可以说对Android开发有了一个大致的了解。 对于一本入门书来讲,不可能求全求深,所以需要进一步的学习,也不可能只通过光读书就可以...
用户评价
这本书真是让我大开眼界,它如同黑暗中的一束光,为我照亮了前行的道路。在翻开它之前,我对于某个领域还是一片茫然,感觉自己像个无头苍蝇,到处乱撞。但自从接触了这本书,一切都变得清晰起来。作者的叙述方式非常独特,他没有使用那些高深莫测的术语,而是用一种非常生活化的语言,将复杂的概念层层剥开,让你不知不觉地就理解了其中的精髓。我尤其欣赏它在逻辑构建上的严谨性,每一步的推导都如同精密的仪器,让人感到无比信服。读完之后,我感觉自己仿佛经历了一场思想的洗礼,看待问题的角度都变得更加开阔和深入。它不仅仅是一本知识的载体,更像是一位耐心的导师,在你迷茫时给予指引,在你懈怠时鞭策前行。我强烈推荐给所有对自我提升有渴望的人,它会成为你书架上不可或缺的珍宝。
说实话,这本书的阅读门槛似乎比我想象的要略高一些,但这恰恰是它优秀品质的佐证——它不迎合大众的浅尝辄止,而是鼓励读者进行深度探索。它要求你投入时间和精力去理解那些看似细微的差别,但一旦你跨过了那个初期的适应期,随之而来的回报将是巨大的知识财富。作者处理复杂议题的方式非常成熟,他懂得如何在保持学术严谨性的同时,保持阅读的流畅性,这是一个极难平衡的艺术。我特别欣赏书中那些充满洞察力的脚注和引文,它们像是一条条隐藏的线索,引导着我深入到更广阔的知识海洋中去探索。这本书不仅教会了我“是什么”,更重要的是教会了我“为什么会是这样”,这种对底层逻辑的探究,才是真正有价值的学习。
坦白说,我一开始抱着相当大的怀疑态度来读这本书的,毕竟市面上同类主题的书籍已经太多,很难再有能让人眼前一亮的佳作。然而,这本书用它独有的力量证明了“经典之所以成为经典,必有其过人之处”。它的高明之处不在于提供了多少新奇的理论,而在于它对既有知识体系进行了极其巧妙的重构和梳理。作者仿佛一位高明的建筑师,他没有推倒重来,而是将那些散落的砖块重新组合,形成了一座结构更稳定、美观度更高的宏伟大厦。我特别喜欢它对“过程”的强调,而不是仅仅聚焦于“结果”,这种对细节的关注,体现了作者深厚的功底和对真理的敬畏之心。这本书我已经推荐给了我好几位朋友,他们反馈都非常积极,可见其普适性和影响力。
这本书的阅读体验简直可以用“酣畅淋漓”来形容,它完全颠覆了我对同类型书籍的刻板印象。我原本以为会是一本枯燥的理论堆砌,结果却被作者的叙事张力和对细节的把控深深吸引。书中穿插的那些小故事和案例分析,简直是神来之笔,它们不是为了凑字数,而是精准地契合了每一个核心论点,让抽象的道理瞬间具象化。我常常是读到某个观点时,会忍不住拍案叫绝,然后合上书本,在房间里踱步思考许久。这种强迫读者主动思考的阅读过程,比被动接受信息有效得多。而且,这本书的装帧设计也充满了匠心,拿在手里就有一种沉甸甸的实在感,油墨的清香似乎也带着某种知识的力量。它让我深刻体会到,真正的“好书”,是能与读者的灵魂产生共鸣的。
这绝对是我今年读过的最有“分量”的一本书,它不是那种读完就扔在一边的快餐读物,而是需要反复咀嚼、时常翻阅的案头书。我发现,每次重读,都会有新的感悟浮现,仿佛每一次翻开,书中的文字都在与我进行一次全新的对话。作者的文字功力极其深厚,笔触老辣而精准,没有一句废话,每一个词语的选用都经过了深思熟虑。特别是其中关于“心态调整”的那几章,简直是直击人心的妙方,它没有给出空洞的口号,而是提供了一套行之有效的思维框架。我感觉自己的情绪管理能力在不知不觉中得到了极大的提升,面对压力时,能够更加从容和理性。这本书的价值,在于它能够潜移默化地改变一个人的内在操作系统。
写得好,我想,主要还是因为Android入门搞起来很简单吧
挺不错的入门指引书,其实看完这本书,联系跟着做,就可以查着官方文档写实际项目了。注意:这不是培训类的书,跟一个实际项目开发相似,出了写代码,还有版本控制系统的应用、广告的植入,很实用。
不错的android入门书,综合评分三颗半星。代码排版不太好,每章最后的打怪系统可以跳过,部分内容有凑页数之嫌,建议配合源码和图灵上的勘误来阅读。虽然有以上缺点,但依然是国内最好的android入门书,比疯狂XX讲义强多了。
入门好书
挺好的Android入门书籍,我是先看了Marz的重制版第一季的视频