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

资源下载

下面是《Android Studio开发实战 从零基础到App上线(第2版)》一书用到的工具和代码资源:
1、本书使用的Android Studio版本为3.2,最新的安装包可前往Android官网页面下载
2、本书使用的Android NDK版本为r17,最新的安装包可前往Android官网页面下载
3、本书提供所有示例源码的demo工程下载,最新的源码可访问我的github获取,github地址是https://gitee.com/aqi00/android2,服务端的github地址是https://gitee.com/aqi00/net_server。(或者访问csdn的下载页面获取源码https://download.csdn.net/download/aqi00/11223223)。另外,AS3.4之后默认开了androidx,如需获取适配了androidx的本书源码,可访问这个github页面https://gitee.com/aqi00/androidx
源码与各章的对应关系表见下图:

4、本书提供配套的ppt课件下载,第二版课件的下载页面为Android Studio开发实战第二版课件.rar
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、11.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要改为小写的intfloat

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下方的文字“接下来就可以大胆设置朗读的语音了”改为“接下来就可以大胆设置朗读的语言了”,也就是把“语音”改为“语言”。
 

  • 64
    点赞
  • 468
    收藏
    觉得还不错? 一键收藏
  • 181
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 181
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值