资源下载

下面是《Android Studio开发实战 从零基础到App上线(第2版)》一书用到的工具和代码资源:
1、本书使用的Android Studio版本为3.2,最新的安装包可前往Android官网页面下载。
2、本书使用的Android NDK版本为r17,最新的安装包可前往Android官网页面下载。
3、本书提供所有示例源码的demo工程下载,源码(适配Android4.1到9.0和Android Studio 3.2到3.4)的下载页面为https://pan.baidu.com/s/14NE2DD-frXxuDXUAlTfRaw。最新的源码也可访问我的github获取,github地址是https://github.com/aqi00/android2,服务端的github地址是https://github.com/aqi00/net_server。(部分地区如新疆既访问不了百度网盘也访问不了github,此时可访问csdn的下载页面获取源码https://download.csdn.net/download/aqi00/11223223)。另外,AS3.4之后默认开了androidx,如需获取适配了androidx的本书源码,可访问这个github页面https://github.com/aqi00/androidx。
有的读者反映从github下载本书源码很慢,或者下载不完整,这是国外服务器连接不稳定造成的。建议访问这个代下载网站https://d.serctl.com/,按照网站左上角的“如何下载教程”,找到本书源码的github下载地址并提交,等待几秒后就能在该网站下载完整的源码了。
源码与各章的对应关系表见下图:

4、本书提供配套的ppt课件下载,第二版课件的下载页面为https://www.jianguoyun.com/p/DX7Y1J4QlP6kCBiUoIkD
5、本书第8章使用了一些反编译和重签名工具,这些工具的下载页面是https://pan.baidu.com/s/1EzDMLNdTdh2pDO7NBMiiww (提取码93i5)

参考资料

1、学习本书需要具备Java基础,所谓“零基础”指的是安卓零基础,如果您没学过Java的话,可学习以下系列的Java教程《Java开发笔记》。
2、由于篇幅所限,本书只覆盖了较为常见的Android开发技术,其余的Android开发技术可参考以下的Android笔记《Android开发笔记》。
3、本书的技术实现采用的是Java编码,若您想进一步了解App开发中的Kotlin编程技术,可阅读以下系列的Kotlin教程《Kotlin入门教程》。
4、更多有关本书内容的常见问题参见博文《Android Studio开发实战 从零基础到App上线(第2版)》常见问题解答。
5、有关Android8、Android9、Android10的更多代码适配参见博文《Android8.0、9.0、10.0的新特性兼容适配代码修改》。

勘误记录

下面对书中的笔误之处进行更正说明:

一、第一批勘误记录(以下的勘误记录在2019年1月的第二次印刷时均已修正):

1、第1页“1.1  Android Studio简介”
该小节第三段第三行“本书使用的Android Studio为2018年4月发布的3.1.2版本”,这里的“4月”改为“9月”,“3.1.2版本”改为“3.2版本”。

2、第428页“10.2.4 HTTP接口访问”
倒数第四行的connect方法,该行后面的“该方法在getOutputStream后调用,在getInputStream前调用。”整个删掉。因为connect方法和getOutputStream方法没有先后调用关系,getOutputStream方法内部会自动调用connect方法。

3、第430页“1. URL串中对汉字的转义处理”
在“具体的转义代码参见本书下载资源的URLtoUTF8.java”这句后面补充“,也可使用系统自带的java.net.URLEncoder和java.net.URLDecoder”。

4、第451页“10.5.1 设计思路”下面的第三行
“于是在打开系统自带的应用宝”,这句前半部分的“在”字删掉。

5、第675页“2. 蓝牙设备BluetoothDevice”
表14-6出现了两个BOND_BONDING,要把后面的“BOND_BONDING”改为“BOND_BONDED”。

二、第二批勘误记录(以下的勘误记录在2019年6月的第四次印刷时均已修正):

1、第46页“2.4.1  图形Drawable”
该页中间“开发者拿到一张图片”这段的第二行中“Android Postfix Completion”要改为“Android Drawable Importer”。

2、第447页的“10.4.2  Socket通信”
在“1. Socket”该段下面的方法说明中,“getOutputStream:获取输入流”,这里的“输入流”要改为“输出流”。

3、第650页“14.1.2  网页视图WebView”
该页代码的倒数第七行,把“http://”改为“https://”,也就是添加字母s。

4、第654页“14.1.3  简单浏览器”
该页代码的倒数第八行,把“http://”改为“https://”,也就是添加字母s。

三、第三批勘误记录(以下的勘误记录在2019年11月的第六次印刷时均已修正):

1、第94页的图3-31,最后一行“2012年07月06日 五年期商贷利率”的数值改为 “6.55%”,原来的6.15%跟2014年的商贷利率重复了。

2、第271页的“7.4.1  循环视图RecyclerView”
该小节第二段第一行的“为了兼容以前的Adnroid版本”,这里的Adnroid拼错了,要改为Android。

3、第409页的“10.1.1  消息传递Message”
第6行的注释“// 从布局文件中获取名叫tv_control的文本视图”,这里的“tv_control”改为“tv_message”

4、第410页的“10.1.1  消息传递Message”
代码倒数第10行的“下面播放新闻”,这里的“下面”改为“开始”。

四、第四批勘误记录(以下的勘误记录在2020年4月的第八次印刷时均已修正):

1、第225页的“6.5.1  Service的生命周期”
    该节第一段第三行在“App也可以有自己的服务。”后面补充以下红字部分:
App也可以有自己的服务。此时需要在AndroidManifest.xml中添加新服务的Service节点配置,比如:
        <service android:name=".service.NormalService" />
2、第353页的表9-6
    该表最后两行的说明都是“高效率的高级编码”,需要把最后一行AAC_ELD的说明改为“增强型低延时的高级编码”。
3、第430页的“10.2.4  HTTP接口调用”
    该页中间在“下面用一个阶段性的实战小项目练练手”这句前面补充以下红字部分:
除此之外,从Android9开始默认只能访问以https打头的安全地址,不能直接访问http打头的网络地址。如果应用仍想访问以http开头的普通地址,就得修改AndroidManifest.xml,给application节点添加如下属性,表示继续使用HTTP明文地址:
        android:usesCleartextTraffic="true"
下面用一个阶段性的实战小项目练练手

五、第五批勘误记录(以下的勘误记录在2020年9月的第九次印刷时均已修正):

1、第21页的“1.5.5  新建一个Activity页面”
该页第一段在“在res\layout下面生成页面布局activity_main2.xml”后面补充以下红字部分:
在res\layout下面生成页面布局activity_main2.xml,还会在AndroidManifest.xml的application节点增加下面一行配置:
        <activity android:name=".Main2Activity"></activity>
新页面创建之后的工程结构如图1-37所示。

2、第52页的“2.4.4  九宫格图片”
图2-26下面说明文字的第二行,“未拉伸预览”改为“两方向同时拉伸预览”

3、第66页的“3.2.2  开关按钮Switch”
表3-2,倒数第二行thumb的说明列改为“设置开关标识的图标”,倒数第一行track的说明列改为“设置开关轨道的背景”,也就是倒数两行的说明文字互换

4、第72页的“3.4.1  文本编辑框EditText”
表3-3,第三行textPassword和第七行numberPassword两行右边的说明列,“星号“*””改为“圆点“•””

5、第83页的“3.5.2  使用Intent传递消息”
表3-5的第六行第三列的“数据类型,用于指定Data类型的定义”,这里的表达比较拗口不易理解,要把“Data类型的定义”改为“消息的数据类型”

6、第88页的“3.5.4  向上一个Activity返回参数”
第一段第三行的“如果还要处理一下个页面的应答数据”,这里的“一下个页面”改为“下一个页面”

7、第171页的“5.4.2  动态注册/碎片适配器FragmentStatePagerAdapter”
该页第一行“然后在Fragment的onCreateView函数中调用getArguments方获得请求数据”,这里的“getArguments方”改为“getArguments方法”,也就是添加“法”字。

8、第214页的“6.4.1  通知推送Notification”
参数构建方法的第三个方法setUsesChronometer,把“设置是否显示计数器”里面的“计数器”改为“计时器”。

9、第237页的“7.1.1  标签按钮”
该页第二行的“读者还记得第2章”,这里的“第2章”改为“第3章”

10、第663页的“14.2.2  创建JNI接口”
“具体的编译配置修改说明如下”这句后面的代码有若干处需要修改,修改之处见下面的红字:
android {
    compileSdkVersion 28
    buildToolsVersion "28.0.3"

defaultConfig {
        applicationId "com.example.mixture"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"

// 此处说明mk文件未能指定的编译参数
        externalNativeBuild {
            ndkBuild {
                // 说明需要生成哪些处理器的so文件
                // NDK的r17版本开始不再支持ARM5(armeabi)、MIPS、MIPS64这几种类型
                abiFilters "arm64-v8a", "armeabi-v7a"
                // 指定C++编译器的版本,比如下面这行用的是C++11
                //cppFlags "-std=c++11"
            }
        }
    }

// 下面指定拾取的第一个so库路径,编译时才不会重复链接
    packagingOptions {
        pickFirst 'lib/arm64-v8a/libjni_mix.so'
        pickFirst 'lib/armeabi-v7a/libjni_mix.so'
        pickFirst 'lib/arm64-v8a/libvudroid.so'
        pickFirst 'lib/armeabi-v7a/libvudroid.so'
    }

// Android Studio 2.2之后才引入externalNativeBuild。此处指定mk文件的路径
    externalNativeBuild {
        ndkBuild {
            // 下面是编译CPU信息、加解密、获取主机名专用的mk文件
            path "src/main/jni/Android.mk"
            //path file("src\\main\\jni\\Android.mk")
        }
    }
}

六、第六批勘误记录(以下的勘误记录在2021年2月的第十次印刷时均已修正):

1、第35页的“2.2.3  滚动视图ScrollView”
该小节示例代码中的两处“线性视图”都改为“线性布局”。

2、第97页的“3.7.2  小知识:提醒对话框AlertDialog”
该小节示例代码第七行的“给建造器设置对话框的信息文本”,把“信息文本”改为“内容文本”。

3、第195页的““6.1.1  声明属性””
表6-1删掉第七行整行(getDimension那行),同时第八行(getDimensionPixelSize那行)的说明列文字改为“尺寸值。单位为px”。

4、第204页的“6.1.5  绘制视图”
在“2. onDraw”的“(1)划定可绘制的区域”下的第一句“虽然本视图内的所有区域都是可以绘制的”,改为“虽然视图内的所有区域都是可以绘制的”,也就是去掉“本”字

5、第233页的“6.5.1  Service的生命周期”
“3. 延迟绑定”小节的第二行,把“因为启动操作在先”改为“因为启动操作在先、绑定操作在后”,也就是补充“、绑定操作在后”这几个字。

6、第335页的“9.2.3  录音与播音”
“1. 媒体录制器MediaRecorder”小节的常用方法列表中,第一行reset后面的文字说明“重置录制资源”改为“重置录制器”,第五行release后面的的文字说明“释放录制资源”改为“释放录制器”。

七、第七批勘误记录:

1、第55页“2.5.2  小知识:日志Log/提示Toast”开始
“2.5.2  小知识:日志Log/提示Toast”和“2.5.3  代码示例”这两个小节共有七处“被除数”要改为“除数”,因为除法运算要检查除数是否为零,而不是检查被除数是否为零。

2、第114页的“4.3.1  SD卡的基本操作”
第三行“<uses-permission android:name="android.permission.READ_EXTERNAL_STORAG" />”改为“<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />”,也就是在STORAG末尾加个E变成STORAGE

3、第136页的“4.6.3  代码示例”
该页中间“声明SD卡的操作权限”下面第三行“<uses-permission android:name="android.permission.READ_EXTERNAL_STORAG" />”改为“<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />”,也就是在STORAG末尾加个E变成STORAGE

4、第232页的“6.6.2  小知识:应用包管理器PackageManager”
该小节开始的代码例子第9行的“PackageManager.PERMISSION_GRANTED”改为“PackageManager.MATCH_UNINSTALLED_PACKAGES”。

5、第336页的“9.1.1  表面视图SurfaceView” 
该页第二行的“这个途径便是内部类表面持有者SurfaceHolder外部调用”改为“这个途径便是内部类表面持有者SurfaceHolder。外部调用”,也就是在“外部调用”前面增加一个句号。

6、第338页的“9.1.2  使用Camera拍照” 
autoFocus方法的说明文字“参数自动对焦接口AutoFocusCallback的onAutoFocus方法在对焦完成时触发”语句不通顺,改为“输入参数为自动对焦接口AutoFocusCallback的实例,该接口的onAutoFocus方法在对焦完成时触发”。

7、第345页的“9.1.4  使用Camera 2拍照”
该页最后一行,“4. 图像读取器ImageReader”小节中,getSurface的方法说明文字“获得图像读取的表面对象”改为“获得图像读取器的表面对象”,也就是增加一个“器”字。

8、第349页的“9.2.1  拖动条SeekBar”
该小节第一行“拖动条SeekBar继承自进度条ProcessBar”,把“ProcessBar”改为“ProgressBar”。

9、第353页的“9.2.3  录音与播音” 
setAudioSamplingRate方法后面的描述文字“单位千赫兹(kHz)”改为“单位赫兹(Hz)”。

10、第364页的“9.3.2  摇一摇——加速度传感器”
该小节第二行末尾的“其他类似的应用还摇骰子”改为“其他类似的应用还有摇骰子”,也就是增加一个“有”字。

11、第381页的“9.5.1  NFC近场通信” 
“2. 启用NFC感应/禁用NFC感应”小节第一段第一行和第三行的两处“重载”改为“重写”。

12、第516页的“11.6.2  小知识:三维图形接口OpenGL” 
该小节第三段第四行的“比如显示生活中黑板的漆面”改为“比如现实生活中黑板的漆面”,也就是把“显示”改为“现实”。

13、第520页的“11.6.2  小知识:三维图形接口OpenGL” 
“此时自定义的渲染器GLRender必须重载onSurfaceCreated”这句里面的“重载”改为“重写”。

14、第553页的“12.3.1  属性动画的用法” 
removeListener的方法说明改为“移除指定的动画监听器”,也就是把“移出”改为“移除”。
removeAllListeners的方法说明改为“移除所有动画监听器”,也就是把“移出”改为“移除”。

15、第557页的“12.3.3  插值器和估值器” 
该小节第二段第一行的“默认是匀速播放”改为“默认是先加速再减速”。

16、第662页的“14.2.2  创建JNI接口”
表14-2  基本数据类型的转换关系,“Java的数据类型”该列的Int和Float要改为小写的int和float。

17、第725页的“15.4.1  文字转语音TextToSpeech”
图例“15-39  小米手机内置的语音引擎”改为“图15-39  小米手机内置的语音引擎”,也就是在“15-39”前面加个“图”。

8、第725页的“15.4.1  文字转语音TextToSpeech”
表15-5  setLanguage方法的返回值说明,下面表格左侧的标题由“TextToSpeech类的返回值”改为“setLanguage方法的返回值”。

19、第726页的“15.4.1  文字转语音TextToSpeech”
图15-41下方的文字“接下来就可以大胆设置朗读的语音了”改为“接下来就可以大胆设置朗读的语言了”,也就是把“语音”改为“语言”。

若对本书内容有任何疑问,可加入QQ群进行咨询,群号是493199768

《Android Studio开发实战 从零基础到App上线(第2版)》资源下载和内容勘误相关推荐

  1. 《Android Studio开发实战 从零基础到App上线》第一版的资源下载和内容勘误

    资源下载 下面是<Android Studio开发实战 从零基础到App上线>(第一版)一书用到的工具和代码资源: 1.本书使用的Android Studio版本为2.2.3,因为Andr ...

  2. 《Android Studio开发实战 从零基础到App上线(第2版)》出版后记

    2015年11月23日,鄙人在csdn发表了第一篇技术文章,掐指一算距今已有三年.遥想当年开写博客,只是为了总结经验同时分享出来,后来机缘巧合受到出版社编辑邀请并出了书,完全是无心插柳的结果.当初写作 ...

  3. 《Android Studio开发实战 从零基础到App上线(第3版)》资源下载和内容勘误

    资源下载 下面是<Android Studio开发实战 从零基础到App上线(第3版)>一书用到的工具和代码资源: 1.本书使用的Android Studio版本为Android Stud ...

  4. 《Android Studio开发实战 从零基础到App上线(第3版)》出版后记

    2018年11月,经过熬夜写作的<Android Studio开发实战 从零基础到App上线(第2版)>正式出版面世.承蒙众多读者的厚爱,第2版的图书在此后的三年多时间,一直保持在移动开发 ...

  5. 《Android Studio开发实战 从零基础到App上线(第2版)》常见问题解答

    下面是第二版读者较经常提出的问题,现统一整理回复如下: 1.第1章的SVN仓库地址 问题:第17页"1.5.2 安装SVN工具"这节里面提到的SVN仓库地址要填什么? 回答:SVN ...

  6. 《Android Studio开发实战 从零基础到App上线》源码运行问题解答

    本书提供了所有章节的完整源码下载,自上市以来陆续收到读者的意见反馈,现将与源码有关的问题汇总归类如下,方便更多的朋友解决源码运行过程中发现的问题: 一.打开本书源码时,出现"Plugin w ...

  7. 《Android Studio 开发实战从零基础到App上线》笔记1

    <Android Studio 开发实战从零基础到App上线>笔记1 前言 在吉林大学Android studio实践的课程上,因为时间有限,教授教授地很不细致,主要讲了初级控件和中级控件 ...

  8. 《Android Studio开发实战 从零基础到App上线》本书内容问题答疑

    1.关于学习本书之前是否需要Java基础 问题:看安卓开发教程书需要很扎实的java基础吗? 回答:本书的零基础指的是安卓零基础,不是Java零基础,所以看本书之前需要一定的Java基础,基本的变量声 ...

  9. 新书推荐:《Android Studio开发实战:从零基础到App上线》

    让我们来看看<Android Studio开发实战 从零基础到App上线>的封面,这个设计简洁大气,很有内涵. <Android Studio开发实战 从零基础到App上线>一 ...

最新文章

  1. 提问与回答:全国大学生智能汽车竞赛的第十五届的7月中旬问答
  2. ML之FE:pandas库中数据分析利器之groupby分组函数、agg聚合函数、同时使用groupby与agg函数组合案例之详细攻略
  3. Ehcache(06)监听器
  4. Web服务器安全设置
  5. visual2019没有勾选的在如何加入_发票管理系统完成升级,勾选认证平台改头换面,你所有的问题都在这里!...
  6. 前端学习(2324):angular初步使用
  7. AppTheme 属性详解
  8. 阿里云容器技术专家莫源:乘风踏雪归来,仍是此间少年
  9. CSS div 塌陷问题
  10. python 日志 logging模块(详细解析)
  11. 我所理解的领域驱动模型设计
  12. 分布式系列九: kafka
  13. Hadoop教程(一)
  14. MFC图形编辑界面工具
  15. 软件工程专业和网络工程专业的区别
  16. 实现lightbox效果
  17. MCE公司:DDR1 和 DDR2 双靶点抑制剂的设计合成及其抗炎作用研究
  18. android9自动安装权限9,按键精灵所有者读写权限安卓9.0如何获取?设置
  19. 微信开通状态检测工具(免验证码版)运行原理
  20. android黑色背景图片,Android png透明图片转jpg时背景变黑的解决方法

热门文章

  1. Ajax定时获取数据
  2. android studio sexy editor性感编辑器设置
  3. linux两个内核错误,Linus Torvalds 修复了 “双重不良” 的Linux内核错误
  4. HTML5+CSS3模拟实现《亮剑》平安县城一役精彩微信群聊-谁开的炮?
  5. C#创建注册表项时会创建到HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node下的问题
  6. 《生物药剂与药物动力学》
  7. 【服务器数据恢复】HP LeftHand存储raid5不可用的数据恢复案例
  8. apriori算法分析 购物篮分析
  9. 自律的人生,更自由。
  10. SQL注入入侵动网SQL版论坛