Android開發藝術探索 圖書勘誤
阿新 • • 發佈:2018-11-13
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
第一章
- 在13頁提到“系統只在Activity異常終止的時候才會呼叫onSaveInstanceState與onRestoreInstanceState來儲存和恢復資料,其他情況不會觸發這個過程。”這句話的描述不確切,準確點說,應該是“系統只在Activity異常終止的時候才會呼叫onSaveInstanceState與onRestoreInstanceState來儲存和恢復資料,其他情況不會觸發這個過程。但是按Home鍵或者啟動新Activity仍然會單獨觸發onSaveInstanceState的呼叫。”
- 在25頁中提到“最後再在MainActivity中單擊按鈕啟動SecondActivity,現在按back鍵,然後看到的是哪個Activity?”這句話表達不確切,準確點說,應該是“然後按兩次back鍵”,詳情可以參考具體的分析。
- 第12頁第一行中“在我們選擇螢幕以後”,改為“當我們旋轉螢幕以後”。
- 第28頁的第一句話,“這個模式一般需要和FLAG_ACTIVITY_NEW_TASK 配合使用,在這種情況下”,改為“這個標記位一般會和singleTask啟動模式一起出現,在這種情況下”。
- 第1.2.2小節中,Activity的Flags,這一節的內容直接翻譯了Android官方文件(
第二章
- 在47頁中提到“以上就是Parcelable和Serializable和區別”。此處有筆誤,應該是“以上就是Parcelable和Serializable的區別”。
- 在47頁中提到“直觀來說,Binder是Android中的一個類,它繼承了IBinder介面。”此處用語不嚴謹,應該為“它實現了IBinder介面”。
- 在86頁中提到“其中 beginBroadcast 和 beginBroadcast 必須要配對使用,哪怕我們僅僅是想要獲取 RemoteCallbackList 中的元素個數”。此處有筆誤,應該是“其中 beginBroadcast 和 finishBroadcast 必須要配對使用,哪怕我們僅僅是想要獲取 RemoteCallbackList 中的元素個數”。
- 在36頁中提到“Linux上可以通過命名管道、共享內容、訊號量等來進行程序間通訊”,改為”Linux上可以通過命名管道、共享記憶體、訊號量等來進行程序間通訊“。
- 在42頁中倒數第6行提到” 在 Android 中也提供了新的序列化方式,那就是 Parcelable 介面,使用 Parcelable 來實現物件的序列號。“,改為”在 Android 中也提供了新的序列化方式,那就是 Parcelable 介面,使用 Parcelable 來實現物件的序列化。“
- 第90頁,aidl那一節,服務端和客戶端如果是兩個工程,則在Service的onBind方法中無法驗證客戶端的許可權。原因是onBind方法並不是一個Binder呼叫,它執行在服務端的UI執行緒中,故在onBind中只能驗證服務端的許可權,然而這是沒有意義的。推薦大家按照第二種方法,在onTransact方法中對客戶端進行許可權驗證。
第三章
- 第132頁中提到” 上面簡單介紹了通過動畫來移動 View 的方法,關於動畫會在第 5 章中進行詳細說明“,改為”上面簡單介紹了通過動畫來移動 View 的方法,關於動畫會在第 7 章中進行詳細說明“。同理,135頁中的第5章也應該是第7章。
- 第125頁中提到” ACTION_UP——手機從螢幕上鬆開的一瞬間。“,改為”ACTION_UP——手指從螢幕上鬆開的一瞬間。“
- 第126頁中提到” 接著,當我們先知道當前的滑動速度時,這個時候可以採用如下方式來獲得當前的速度“,改為”接著,當我們想知道當前的滑動速度時,這個時候可以採用如下方式來獲得當前的速度“。
- 第138頁中3.3.2小節中,應該是“以下程式碼可以讓一個View在100ms內向右移動100畫素”,向左是筆誤,應該是向右。
第四章
- 第196頁中提到” 下面我們來回答一個在 4.3.2 節中提到的問題: View 的測量寬/高和最終/寬高有什麼區別?“,改為”下面我們來回答一個在 4.3.2 節中提到的問題: View 的測量寬/高和最終寬/高有什麼區別?“
- 第207頁中” mColor = a.getColor(styleable.CircleView_circle_color, Color.RED); “,改為”mColor = a.getColor(R.styleable.CircleView_circle_color, Color.RED); “
- 第207頁中,“通過 recycle 方法來實現資源,這樣 CircleView 中所做的工作就完成了。“,改為”通過 recycle 方法來釋放資源,這樣 CircleView 中所做的工作就完成了。“
- 第176頁中提到” 如何得到 content 呢?可以這樣:ViewGroup content= findViewById(R.android.id.content)。“,改為”如何得到 content 呢?可以這樣:ViewGroup content= (ViewGroup)findViewById(android.R.id.content)。“
- 182頁中最下面的表格裡,左下方的“warap_content” 改為 “wrap_content”。
- 205頁中的程式碼有誤,改為:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
final int paddingLeft = getPaddingLeft();
final int paddingRight = getPaddingRight();
final int paddingTop = getPaddingTop();
final int paddingBottom = getPaddingBottom();
int width = getWidth() - paddingLeft - paddingRight;
int height = getHeight() - paddingTop - paddingBottom;
int radius = Math.min(width, height) / 2;
canvas.drawCircle(paddingLeft + width / 2, paddingTop + height/2, radius, mPaint);
} - 209中的程式碼的最後一段有誤,改為:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
final int paddingLeft = getPaddingLeft();
final int paddingRight = getPaddingRight();
final int paddingTop = getPaddingTop();
final int paddingBottom = getPaddingBottom();
int width = getWidth() - paddingLeft - paddingRight;
int height = getHeight() - paddingTop - paddingBottom;
int radius = Math.min(width, height) / 2;
canvas.drawCircle(paddingLeft + width / 2, paddingTop + height / 2, radius, mPaint);
}
第六章
- 在250頁中提到”android:endColo——漸變的結束色“,此處有筆誤,應該是”android:endColor——漸變的結束色“
第七章
- 第278頁中的程式碼有誤,改為:android:repeatMode=[“restart” | “reverse”]
- 第279頁中的提到“另一個是 android:repeatMode,它表示動畫迴圈的模式,有兩個選項: “repeat”和“reverse” ,分別表示連續重複和逆向重複。”,改為“另一個是 android:repeatMode,它表示動畫迴圈的模式,有兩個選項: “restart”和“reverse” ,分別表示連續重複和逆向重複。”
第九章
- 第336頁中提到” Service 的啟動過程從 ContextWrapper 的 startActivity 開始,如下所示。“,改為”Service 的啟動過程從 ContextWrapper 的 startService 開始,如下所示。“
- 第337頁中提到” 下面繼續看 ContextImpl 的 startActivity 的實現,如下所示。“,改為”下面繼續看 ContextImpl 的 startService的實現,如下所示。“
第十章
- 在372頁中提到“由於Android開發規範的限制,我們並不能在主執行緒中訪問UI控制元件“。此處有筆誤,應該是”我們並不能在子執行緒中訪問UI控制元件“。
第十三章
- 第468頁中提到“為了更好地對多外掛進行支援,需要合理地去管理各個外掛的 DexClassoader “,改為”為了更好地對多外掛進行支援,需要合理地去管理各個外掛的 DexClassLoader “。
第十五章
- 在502頁中提到“適當使用軟引用和軟引用”。此處有筆誤,應該是“適當使用軟引用和弱引用”。
- 在507頁中提到”一個合理的命令風格可以讓讀者閱讀原始碼就像在閱讀註釋一樣“,此處有筆誤,應該是”一個合理的命名風格可以讓讀者閱讀原始碼就像在閱讀註釋一樣“
說明
歡迎大家向我反饋勘誤資訊,在本文下面留言即可,我會更新在本文中。所有的勘誤將會在本書重印時予以修正,所以希望大家多多向我反饋勘誤資訊。
注意:本文正文以及留言中所有的勘誤都將在《Android開發藝術探索》第四次印刷時全部修正。
PS:最近很多同學問我哪裡可以購買到第四次印刷的書,其實目前市面上都是四次印刷以後的書了,只是京東等網站懶得更新圖書資訊而已,所以大家勇敢地購買吧!
書中原始碼下載
https://github.com/singwhatiwanna/android-art-res
- 歡迎大家加入我的知識星球,一起學習交流