1. 程式人生 > >Android知識體系

Android知識體系

1、論如何動態地獲取Drawable中系列連續的圖片
Android中 Bitmap Drawable Paint的獲取、轉換以及使用
2、Canvas物件的獲取方式有兩種:一種我們通過重寫View.onDraw方法,View中的Canvas物件會被當做引數傳遞過來,我們操作這個Canvas,效果會直接反應在View中,另一種就是當你想建立一個Canvas物件時使用的方法:

<code class="hljs avrasm has-numbering">Bitmap b = Bitmap<span class="hljs-preprocessor">.createBitmap</span>(<span class="hljs-number">100</span>, <span class="hljs-number">100</span>, Bitmap<span class="hljs-preprocessor">.Config</span><span class="hljs-preprocessor">.ARGB</span>_8888)<span class="hljs-comment">;   </span>
Canvas c = new Canvas(b)<span class="hljs-comment">;</span></code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li></ul>

Android Canvas繪圖詳解(圖文)
3、Android中的軟鍵盤的操作到處都是,比如當我們進入某個畫面,該畫面有個EditText控制元件,此時在沒做處理的情況下會獲取焦點自動彈出軟鍵盤;因此我們想:

①、在該EditText 獲取焦點時,不彈出軟鍵盤
②、該EditText 獲取焦點與不獲取焦點,都不彈出軟鍵盤
③、進入activity時,不彈出軟鍵盤,當用戶需要時再彈出軟鍵盤。
④、點選螢幕其他地方該EditText 失去焦點,並且關閉軟鍵盤。、
……
各種各樣的需求如期而至。這裡只介紹相關軟鍵盤操作,至於為什麼這麼操作,深層次問題還得自己慢慢研究了
android軟鍵盤的各種操作


4、onTouch和onTouchEvent有什麼區別,又該如何使用?為什麼給ListView引入了一個滑動選單的功能,ListView就不能滾動了?為什麼圖片輪播器裡的圖片使用Button而不用ImageView?請看
Android事件分發機制完全解析,帶你從原始碼的角度徹底理解(上)
Android 程式設計下 Touch 事件的分發和消費機制
android 事件處理機制總結
5、一個Handler會允許你傳送和處理Message或者Runnable物件關聯到一個執行緒的訊息佇列MessageQueue中,每一個Handler的例項都會關聯一個單一的執行緒和那個執行緒的訊息佇列中。當你建立一個一個新的Handler,它會繫結到你建立的執行緒和這個執行緒訊息佇列中。並且指向好它,它會讓訊息傳遞到關聯好它的訊息佇列中,當它從訊息隊列出隊的時候執行它
【Android 開發】: Android 訊息處理機制之一: Handler 與 Message

【Android 開發】: Android 訊息處理機制之二: Message 中 obtain()原始碼剖析
【Android 開發】:Android 訊息處理機制之三:Handler sendMessage() 原始碼剖析
【Android 開發】: Android 訊息處理機制之四: 訊息迴圈 Looper 及其原始碼解析
6、一個Android程式預設情況下只有一個程序,但是一個程序卻是可以有許執行緒的。在這些執行緒中,有一個執行緒叫做UI執行緒,也叫做Main Thread,除了Main Thread之外的執行緒都可稱為Worker Thread。Main Thread主要負責控制UI頁面的顯示、更新、互動等。 因此所有在UI執行緒中的操作要求越短越好,只有這樣使用者才會覺得操作比較流暢。一個比較好的做法是把一些比較耗時的操作,例如網路請求、資料庫操作、 複雜計算等邏輯都封裝到單獨的執行緒,這樣就可以避免阻塞主執行緒,這個時候就用到了非同步任務類AsyncTask。
AsyncTask初步解析
7、整個View樹的繪圖流程是在ViewRoot.java類的performTraversals()函式展開的,該函式做的執行過程可簡單概況為
根據之前設定的狀態,判斷是否需要重新計算檢視大小(measure)、是否重新需要安置檢視的位置(layout)、以及是否需要重繪
(draw),其框架過程如下
csdn
部落格的話看這兩份就足夠了,簡單易懂,要點清晰:
onMeasure流程解析
自定義控制元件其實很簡單
8、Android所有的控制元件都是View或者View的子類,它其實表示的就是螢幕上的一塊矩形區域,用一個Rect來表示,left,top表示View相對於它的parent View的起點,width,height表示View自己的寬高,通過這4個欄位就能確定View在螢幕上的位置,確定位置後就可以開始繪製View的內容了
教你搞定Android自定義View
Android中自定義View的onMeasure以及MeasureSpec使用
自定義View 常用方法
9、Android開發中,經常會接觸到自定義View,而與View繪製相關的一組組方法很容易讓人混淆
【Android開發】View的平移、縮放、旋轉以及位置、座標系
10、ViewDragHelper從名稱上就可以看出, 這是一個用來簡化view拖拽操作的幫助類。而且使用起來也很簡單, 很方便,只需要幾個方法和1個Callback就可以實現一個可以拖動到view。需要注意個是:ViewDragHelper是作用在一個ViewGroup上,也就是說他不能直接作用到被拖拽的view, 其實這也很好理解,因為view在佈局中的位置是父ViewGroup決定的。那麼如何使用ViewGroup實現一個可以拖動的view?
ViewDragHelper詳解(一)- 可拖動的view
11、在Android所有常用的原生控制元件當中,用法最複雜的應該就是ListView了,它專門用於處理那種內容元素很多,手機螢幕無法展示出所有內容的情況
Android ListView工作原理完全解析,帶你從原始碼的角度徹底理解
12、關於Android四大元件之Service的使用
Android Service 全解析
13、android在設計理念上強調元件化,元件之間的依賴性很小。我們往往發一個intent請求就可以啟動另一個應用的activity,或者一個你不知道在哪個程序的service,或者可以註冊一個廣播,只要有這個事件發生你都可以收到,又或者你可以查詢一個contentProvider獲得你想要的資料,這其實都需要跨程序通訊的支援。只是android將其封裝的如此簡單,應用開發者甚至完全不用關注它是不是和我在一個程序裡
android中的跨程序通訊的實現(一)遠端呼叫過程和aidl
14、android提供了一個WebView控制元件,藉助它我們就可以在自己的應用程式中嵌入一個瀏覽器,從而輕鬆的展示各種各樣的網頁
android學習十九(WebView的用法)

Effective java中文版第二版

本書介紹了在Java程式設計中78條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員每天所面臨的問題的解決方案。通過對Java平臺設計專家所使用的技術的全面描述,揭示了應該做什麼,不應該做什麼才能產生清晰、健壯和高效的程式碼,Java開發進階必備

第一行程式碼

書的作者是郭霖,Android開發的前輩,CSDN部落格之星,郭神的部落格寫的很好,對很多Android開發很有幫助,這本書寫的也確實不錯,是入門的精選

Android開發藝術探索

《Android開發藝術探索》是一本Android進階類書籍,作者也是CSDN知名博主任玉剛,採用理論、原始碼和實踐相結合的方式來闡述高水準的Android應用開發要點,讓初、中級工程師能夠掌握高階工程師所具備的知識,作者以過來人的身份通過書本將開發中的重要知識點一一到來,使讀者能夠在技術深度和廣度上都有很大程度上的提升,適合進階看

Pro Android 5

隨著Android版本的更新,精通Android也出版了最新的Pro Android5,本是適合想要入門Android的同學,也適合相關開發人員的參考,建議讀者應該具有相應的Java基礎,才能更好地閱讀此書

1、codePath程式設計之路(需要翻牆)
2、Stack Overflow類似於英文版的知乎,幾乎你在Android開發中遇到的所有坑都能在上面找到答案(需要翻牆)
3、Github唔,暫時定義為最大的程式設計師同性交友網站,上面有許多著名的開源庫
4、慕課網慕課網是垂直的網際網路IT技能免費學習網站。以獨家視訊教程、線上程式設計工具、學習計劃、問答社群為核心特色
5、極客學院極客學院是中國android開發線上學習平臺,涵蓋了Android開發學習的基礎入門、中級進階,高階提升、專案實戰開發等專業的android開發課程
6、eoeandroid論壇國內成立最早,最大最專業的Android開發者社群,為Android開發者提供海量優秀的Android學習資料
7、開源中國是目前國內最大的開源技術社群,為IT開發者提供了一個發現、使用、並交流開源技術的平臺
8、安卓巴士專門為開發者提供最優質的資源服務、最完善的資訊共享平臺
9、JavaApk安卓應用遊戲APP原始碼下載站
10、極客學院下載站功能同上
11、23Code安卓開源經典程式碼分享
12、Material Design中文版
13、Android官方培訓課程中文版
14、Android DeveloperAndroid官方開發者中心(需要翻牆)

  • 任玉剛

    任玉剛,Android高階工程師,CSDN部落格專家,2014十大部落格之星,其在CSDN發表的部落格多篇訪問量達3萬+,好評無數。

  • 徐醫生

    CSDN部落格專家、滬江網軟體工程師,是一位熱愛程式設計、喜歡分享的極客

  • 郭霖

    Android軟體開發工程師。從事Android開發工作四年,有著豐富的專案實戰經驗,負責及參與開發過多款移動應用與遊戲,對Android系統架構及應用層開發有著深入的理解。2013年3月開始,在CSDN上發表Android技術相關博文,很快就獲得了大量網友的好評。短短一年時間部落格訪問量超過50萬次,評價近3000條。榮獲CSDN認證專家,並被評選為2013年CSDN年度部落格之星

  • 張鴻洋

    CSDN認證專家,2014部落格之星.鴻洋老師精通Java企業級開發,對基於Java的Web框架有一定的認知。
    而且還在csdn上撰寫了”Android 精彩案例”一系列博文

  • 羅昇陽

    從2011年至今,在國內知名IT技術社群CSDN上開設了《老羅的Android之旅》專欄(http://blog.csdn.net/luoshengyang),發表了130+篇高質量文章,並且製作了十多個PPT作為部落格文章導讀。部落格的訪問量一直居於前茅,排名在100以內,並且有6000+的評論。

  • 張興業

    CSDN知名博主,注移動網際網路開發,關注移動支付業務