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

《Android Studio开发实战 从零基础到App上线(第2版)》资源下载和内容勘误[通俗易懂]资源下载下面是《AndroidStudio开发实战从零基础到App上线(第2版)》一书用到的工具和代码资源:1、本书使用的AndroidStudio版本为3.2,最新的安装包可前往Android官网页面下载。2、本书使用的AndroidNDK版本为r17,最新的安装包可前往Android官网页面下载。3、本书提供所有示例源码的demo工程下载,源码(适配Android4.1到9….

大家好,又见面了,我是你们的朋友全栈君。

资源下载

下面是《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下载地址并提交,等待几秒后就能在该网站下载完整的源码了。
源码与各章的对应关系表见下图:

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138853.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 光猫桥接关闭dhcp不能打开电信网关了_光猫和路由器桥接

    光猫桥接关闭dhcp不能打开电信网关了_光猫和路由器桥接大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。光猫桥接不要关闭dhcp,连接是默认DHCP模式,这个不能更改。就算有超级用户名登录,也不能删除。对于用户设备来说,DHCP主要完成以下四方面的工作:1、是用户设备自动配置和动态的业务配置对于ACS来说,每个用户设备可以在协议中对自己作出标志(例如型号、版本等),根据可设定的规则,ACS可以对某一个特定用户设备下发配置,也可以对某…

    2022年10月22日
  • Microsoft Office 2007正式版序列号,可通过正版验证[通俗易懂]

    Microsoft Office 2007正式版序列号,可通过正版验证[通俗易懂]MicrosoftOffice2007AppKey:RYX9X-2WR37-XTBXD-CGGCJ-FQ8BJFWVFQ-P23PG-PQC4W-X299G-D44MJFJYC4-Y8JTR-T8RKY-4GBD4-TQK38J8TVY-RW6CH-K4K92-JW4T8-B4THWMJJHT-2G2B3-GTWVP-BHX3C-WKCVWMJCXB-73MGC-GY37D-Y…

  • socks4代理网络渗透测试实验

    socks4代理网络渗透测试实验实验目的:利用2级代理功能对3层网络进行渗透测试靶机ubantu192.168.31.207192.168.1.129ubantu192.168.1.100192.168.2.10windows2009192.168.2.100192.168.首先访问192.1…

  • subline3 激活码(最新序列号破解)

    subline3 激活码(最新序列号破解),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • linux扩容VBoxManage

    linux扩容VBoxManage//查看虚拟磁盘空间信息,确认确实是需要扩容的虚拟硬盘。VBoxManageshowhdinfo”F:\oracleVirtualBox\workspace\centos1\centos1.vdi”//计算要扩容的空间大小,我这里是要扩展到100G(1024*1024*1024*100)。set/a1024*1024*1024//扩展虚拟硬盘空间,最后的数字替换成上面计算出的硬盘空…

  • 如何保证docker2375端口的安全

    如何保证docker2375端口的安全情景再现:之前有很多朋友提过,当使用docker-maven-plugin打包SpringBoot应用的Docker镜像时,服务器需要开放2375端口。由于开放了端口没有做任何安全保护,会引起安全漏洞,被人入侵、挖矿、CPU飙升这些情况都有发生,今天我们来聊聊如何解决这个问题。问题产生的原因首先我们要明白问题产生的原因,才能更好地解决问题!Docker为了实现集群管理,提供了远程管理的端口。DockerDaemon作为守护进程运行在后台,可以执行发送到管理端口上的Docker命令。当我们修改do

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号