《Android Studio開發實戰 從零基礎到App上線》資源下載和內容勘誤


http://blog.csdn.net/aqi00/article/details/72907534

http://blog.csdn.net/aqi00/article/details/73065392

 

目錄(?)[+]

 

資源下載

下面是《Android Studio開發實戰 從零基礎到App上線》一書用到的工具和代碼資源:
1、本書使用的Android Studio版本為2.2.3,因為Android官網現在不提供該版本的下載,所以博主把該版本的64位安裝包上傳到了百度網盤,點擊 https://pan.baidu.com/s/1o80opRG進入下載頁面。
如需32位的Android Studio安裝包,可前往 Android官網頁面下載。
2、本書使用的Android NDK版本為r13b,64位NDK安裝包的下載頁面為 https://pan.baidu.com/s/1qXZLMsG
如需32位的NDK安裝包,可前往 Android官網頁面下載。
3、本書提供所有示例源碼的demo工程下載,源碼的下載頁面為 https://pan.baidu.com/s/1c1LXlKG,源碼與各章的對應關系表見下圖:

4、本書第8章使用了一些反編譯和重簽名工具,這些工具的下載頁面是 https://pan.baidu.com/s/1kVRyLwj


內容說明

一、關於Android Studio的版本
本書采用的Android Studio版本為當時最新的2.2.3,然后2017年3月份谷歌又推出了2.3版本,與2.2.3版本相比,2.3版在安裝和使用上主要有兩個差別:
1、Android Studio 2.3適配的Gradle版本為3.3,可是安裝包自帶的Gradle版本卻是3.2,造成項目編譯失敗。為此,如果Android Studio升級到2.3版本,也需要同時把Gradle升級到3.3並做一系列的配置調整才行,具體操作步驟詳見博文《 Android Studio升級到2.3的編譯問題解決辦法》。
2、把編譯好的工程導出apk安裝包,彈出窗口的最后一頁多了兩個復選框“V1 (Jar Signature)”和“V2 (Full APK Signature)”,這里務必要勾選第一個“V1 (Jar Signature)”,具體原因參見博文《 Android Studio 2.3的各種新增疑難雜症》。

二、關於JNI工程的編譯問題
Android Studio 2.2之后增強了對NDK的編譯支持,具體地說,是允許在編譯配置build.gradle的android節點下增加externalNativeBuild節點,然后指定jni目錄的mk編譯文件;而之前版本只能在defaultConfig節點下補充ndk的編譯說明。
在測試中發現,Android Studio 2.2采用defaultConfig方式編譯jni工程,生成的App在Android 6.0上運行會閃退,日志報錯“java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__aeabi_memcpy" referenced by "***.so"”。此時不管怎么修改build.gradle里面的ndk配置,可能都無法解決問題。
如果遇到這種情況,只能采用externalNativeBuild方式編譯jni工程,即在jni目錄下提供專門的Android.mk編譯文件,由該mk文件配置jni文件的編譯規則。

三、關於源碼的文件格式問題
注意Android Studio對文件格式的校驗要比Eclipse嚴格,如果把原來Eclipse工程的代碼復制或者導入到Android Studio工程中,則很有可能發生編譯失敗的問題。原因是有部分文件的格式是“UTF帶BOM”,由於Eclipse會自動處理因此在Eclipse上編譯不會報錯;但是Android Studio無法正確處理帶BOM的文件,所以編譯就報錯了。此時需要使用UEStudio等文本編輯軟件,把這些文件另存為“UTF無BOM”的格式才可以。
帶BOM造成的編譯問題主要影響下面兩類文件:
1、.java文件,編譯報錯“Error:(1, 1) 錯誤: 非法字符: '\ufeff'”;
2、.mk文件,無法正常編譯jni代碼;

四、關於部分控件的兼容性問題與新控件的介紹
Android的碎片化問題由來已久,每個版本對同一控件的處理不盡相同,經常導致某個控件在A版本上運行正常,在B版本上卻運行異常。所以Android開發對控件進行兼容適配也是不小的工作量,限於篇幅,書中對部分控件的兼容性問題未做深入闡述。另外,Android自5.0之后引入了大量新控件,雖然書中已經對其中常用的新控件進行描述(包括Toolbar、TabLayout、RecyclerView、SwipeRefreshLayout、camera2、DrawerLayout、CardView、Palette等等),但是仍有許多新控件未能在有限的篇幅中加以介紹。此外,Android6.0之后引入了新的權限管理和休眠模式,也對部分功能的開發造成一定影響。
為了彌補缺憾,現在下面列出部分控件的兼容性問題說明,以及所有新控件的介紹:
1、對於RecyclerView的兼容性問題說明,可參見博文《 RecyclerView的各種版本兼容問題處理集錦》。
2、對於選項菜單、上下文菜單、溢出菜單的兼容性問題說明,可參見博文《 三種菜單控件的兼容性問題處理集錦》。
3、對於Android5.0之后新增的控件介紹,可參見博文《 Android5.0和6.0之后新增的控件說明》中的索引。
4、對於Android6.0的權限管理和休眠模式造成的影響,可參見博文《 Android6.0之后的權限機制對App開發的影響》。


勘誤記錄

下面對書中的筆誤之處進行更正說明:

1、第2頁“1.1  Android Studio簡介”一節的第三段話中,
“Android Studio當前的最新版本是2016年12月6日發布的2.2.3”,這句話的本意是“本書使用的Android Studio為2016年12月6日發布的2.2.3版本”。

2、第4頁最后一行(“1.2.2  安裝依賴的軟件”一節),
“騰訊Bugly,地址:android-mirror.bugly.qq.com,端口:8080”,這行文字描述的地址已經失效,要換成另外一個地址,即改為“mirrors.dormforce.net,端口:80”

3、第47頁“2.4.2 狀態列表圖形”一節的第三段,
“值為true表示按下時顯示button_selected圖像”,此處的“button_selected”要改為“button_pressed”。

4、第48頁“2.4.3 形狀圖形”一節的“3.gradien”段落,
“gradien是shape的下級節點”,這里的“gradien”末尾少了一個t,該段落里的幾個“gradien”都要改為“gradient”。

5、第67頁“3.2.3 單選按鈕RadioButton”一節常用方法的第一個,
“setCheckedId:選中指定資源編號的單選按鈕。”,這里的“setCheckedId”要改為“check”。

6、第437頁“11.4.1  上下滾動與左右滑動的沖突處理”一節“2. 下級視圖告訴滾動視圖能否攔截手勢”段落的第二段話中,
“Banner采用手勢監聽器就是重寫監聽器的onScroll方法”,為准確表達,要改為“對於Banner采用手勢監聽器的情況,可重寫監聽器的onScroll方法”。

7、第457頁“12.1.3  淡入淡出動畫”一節,
表12-1中第五行的“gradien”要改為“gradient”。

8、第463頁“12.2.2  補間動畫的原理”一節的倒數第二段,
“第一個參數為插值時間逝去的時間的百分比”,這句話中間要加上“,即”,也就是改為“第一個參數為插值時間,即逝去的時間所占的百分比”。

9、第508頁“13.2.3  影視播放器——愛看劇場”一節“2. 定制MediaController的樣式”段落的第一段話中,
“因為媒體控制條的內部控件都是私有的,即使繼承了也無法修改,因此只能自己寫一個全新的視頻控制條VideoController”,這里使用了“由於……,因此……”的句式,所以前面的“因為”要改為“由於”。

10、第514頁“13.2.3  影視播放器——愛看劇場”一節的中間一段話中,
“音量對話框的實現過程參見第9章”,這里的“第9章”要改為“第11章”。因為自定義的音量對話框來源於“11.1.3 音量調節對話框”,該節是在第11章,不是第9章。

11、第541頁的“14.1.2  網頁視圖WebView”一節的最后一段話中,
“但是套用固定的代碼模板使用也不錯”,這里的“不錯”應改為“不難”。

12、第591頁“15.1.2  百度地圖”的開頭一段話中,
“進行測量時。還要在地圖上添加標記”,這里的句號要改為逗號,即改為“進行測量時,還要在地圖上添加標記”。

13、第598頁“15.2.2  微信分享”的第一段話中,
“盡管微信與QQ雖然都是騰訊公司開發”,這里的“盡管”和“雖然”表達重復了,要改為“盡管微信與QQ都是騰訊公司開發”。

14、第639頁“16.5.1  設計思路”一節的第一段話中,
“如果在SK卡找到圖片”,這里的“SK卡”要改為“SD卡”。

 
1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM