android探索藝術
❶ android開發藝術探索上的面試題目多嗎
任玉剛的《Android開發藝術探索》是進階類書籍,主要是從源碼角度介紹一些技術要點的;
所以是沒有比較基礎的面試的題的,都是一些稍微深入的問題,例如『自定義View』、『IPC機制』、『消息機制』、『線程調度』之類的。
❷ Android開發藝術探索的目錄
第1章 Activity的生命周期和啟動模式 / 1
1.1 Activity的生命周期全面分析 / 1
1.1.1 典型情況下的生命周期分析 / 2
1.1.2 異常情況下的生命周期分析 / 8
1.2 Activity的啟動模式 / 16
1.2.1 Activity的LaunchMode / 16
1.2.2 Activity的Flags / 27
1.3 IntentFilter的匹配規則 / 28
第2章 IPC機制 / 35
2.1 Android IPC簡介 / 35
2.2 Android中的多進程模式 / 36
2.2.1 開啟多進程模式 / 36
2.2.2 多進程模式的運行機制 / 39
2.3 IPC基礎概念介紹 / 42
2.3.1 Serializable介面 / 42
2.3.2 Parcelable介面 / 45
2.3.3 Binder / 47
2.4 Android中的IPC方式 / 61
2.4.1 使用Bundle / 61
2.4.2 使用文件共享 / 62
2.4.3 使用Messenger / 65
2.4.4 使用AIDL / 71
2.4.5 使用ContentProvider / 91
2.4.6 使用Socket / 103
2.5 Binder連接池 / 112
2.6 選用合適的IPC方式 / 121
第3章 View的事件體系 / 122
3.1 View基礎知識 / 122
3.1.1 什麼是View / 123
3.1.2 View的位置參數 / 123
3.1.3 MotionEvent和TouchSlop / 125
3.1.4 VelocityTracker、GestureDetector和Scroller / 126
3.2 View的滑動 / 129
3.2.1 使用scrollTo/scrollBy / 129
3.2.2 使用動畫 / 131
3.2.3 改變布局參數 / 133
3.2.4 各種滑動方式的對比 / 133
3.3 彈性滑動 / 135
3.3.1 使用Scroller / 136
3.3.2 通過動畫 / 138
3.3.3 使用延時策略 / 139
3.4 View的事件分發機制 / 140
3.4.1 點擊事件的傳遞規則 / 140
3.4.2 事件分發的源碼解析 / 144
3.5 View的滑動沖突 / 154
3.5.1 常見的滑動沖突場景 / 155
3.5.2 滑動沖突的處理規則 / 156
3.5.3 滑動沖突的解決方式 / 157
第4章 View的工作原理 / 174
4.1 初識ViewRoot和DecorView / 174
4.2 理解MeasureSpec / 177
4.2.1 MeasureSpec / 177
4.2.2 MeasureSpec和LayoutParams的對應關系 / 178
4.3 View的工作流程 / 183
4.3.1 measure過程 / 183
4.3.2 layout過程 / 193
4.3.3 draw過程 / 197
4.4 自定義View / 199
4.4.1 自定義View的分類 / 200
4.4.2 自定義View須知 / 201
4.4.3 自定義View示例 / 202
4.4.4 自定義View的思想 / 217
第5章 理解RemoteViews / 218
5.1 RemoteViews的應用 / 218
5.1.1 RemoteViews在通知欄上的應用 / 219
5.1.2 RemoteViews在桌面小部件上的應用 / 221
5.1.3 PendingIntent概述 / 228
5.2 RemoteViews的內部機制 / 230
5.3 RemoteViews的意義 / 239
第6章 Android的Drawable / 243
6.1 Drawable簡介 / 243
6.2 Drawable的分類 / 244
6.2.1 BitmapDrawable / 244
6.2.2 ShapeDrawable / 247
6.2.3 LayerDrawable / 251
6.2.4 StateListDrawable / 253
6.2.5 LevelListDrawable / 255
6.2.6 TransitionDrawable / 256
6.2.7 InsetDrawable / 257
6.2.8 ScaleDrawable / 258
6.2.9 ClipDrawable / 260
6.3 自定義Drawable / 262
第7章 Android動畫深入分析 / 265
7.1 View動畫 / 265
7.1.1 View動畫的種類 / 265
7.1.2 自定義View動畫 / 270
7.1.3 幀動畫 / 272
7.2 View動畫的特殊使用場景 / 273
7.2.1 LayoutAnimation / 273
7.2.2 Activity的切換效果 / 275
7.3 屬性動畫 / 276
7.3.1 使用屬性動畫 / 276
7.3.2 理解插值器和估值器 / 280
7.3.3 屬性動畫的監聽器 / 282
7.3.4 對任意屬性做動畫 / 282
7.3.5 屬性動畫的工作原理 / 288
7.4 使用動畫的注意事項 / 292
第8章 理解Window和WindowManager / 294
8.1 Window和WindowManager / 294
8.2 Window的內部機制 / 297
8.2.1 Window的添加過程 / 298
8.2.2 Window的刪除過程 / 301
8.2.3 Window的更新過程 / 303
8.3 Window的創建過程 / 304
8.3.1 Activity的Window創建過程 / 304
8.3.2 Dialog的Window創建過程 / 308
8.3.3 Toast的Window創建過程 / 311
第9章 四大組件的工作過程 / 316
9.1 四大組件的運行狀態 / 316
9.2 Activity的工作過程 / 318
9.3 Service的工作過程 / 336
9.3.1 Service的啟動過程 / 336
9.3.2 Service的綁定過程 / 344
9.4 BroadcastReceiver的工作過程 / 352
9.4.1 廣播的注冊過程 / 353
9.4.2 廣播的發送和接收過程 / 356
9.5 ContentProvider的工作過程 / 362
第10章 Android的消息機制 / 372
10.1 Android的消息機制概述 / 373
10.2 Android的消息機制分析 / 375
10.2.1 ThreadLocal的工作原理 / 375
10.2.2 消息隊列的工作原理 / 380
10.2.3 Looper的工作原理 / 383
10.2.4 Handler的工作原理 / 385
10.3 主線程的消息循環 / 389
第11章 Android的線程和線程池 / 391
11.1 主線程和子線程 / 392
11.2 Android中的線程形態 / 392
11.2.1 AsyncTask / 392
11.2.2 AsyncTask的工作原理 / 395
11.2.3 HandlerThread / 402
11.2.4 IntentService / 403
11.3 Android中的線程池 / 406
11.3.1 ThreadPoolExecutor / 407
11.3.2 線程池的分類 / 410
第12章 Bitmap的載入和Cache / 413
12.1 Bitmap的高效載入 / 414
12.2 Android中的緩存策略 / 417
12.2.1 LruCache / 418
12.2.2 DiskLruCache / 419
12.2.3 ImageLoader的實現 / 424
12.3 ImageLoader的使用 / 441
12.3.1 照片牆效果 / 441
12.3.2 優化列表的卡頓現象 / 446
第13章 綜合技術 / 448
13.1 使用CrashHandler來獲取應用的crash信息 / 449
13.2 使用multidex來解決方法數越界 / 455
13.3 Android的動態載入技術 / 463
13.4 反編譯初步 / 469
13.4.1 使用dex2jar和jd-gui反編譯apk / 470
13.4.2 使用apktool對apk進行二次打包 / 470
第14章 JNI和NDK編程 / 473
14.1 JNI的開發流程 / 474
14.2 NDK的開發流程 / 478
14.3 JNI的數據類型和類型簽名 / 484
14.4 JNI調用java方法的流程 / 486
第15章 Android性能優化 / 489
15.1 Android的性能優化方法 / 490
15.1.1 布局優化 / 490
15.1.2 繪制優化 / 493
15.1.3 內存泄露優化 / 493
15.1.4 響應速度優化和ANR日誌分析 / 496
15.1.5 ListView和Bitmap優化 / 501
15.1.6 線程優化 / 501
15.1.7 一些性能優化建議 / 501
15.2 內存泄露分析之MAT工具 / 502
15.3 提高程序的可維護性 / 506
❸ 學安卓開發的話難不難和java比哪個好學
您好 學習Java的應用更加廣泛些安卓開發 是object與swift 只能應用Apple產品的開發,難不難在於個人,每個語言都差不多,學通了就很容易
❹ 學Android看哪本書最詳細
學習安卓入門的話可以看郭神的《第一行代碼》(第三版),進階可以看任玉剛的《Android開發藝術探索》
縮放圖片可以用PhotoView框架:網頁鏈接
製作二維碼可以用ZXing框架:網頁鏈接
❺ Android 開發有什麼進階的書么
更應該去閱讀源碼,通過Android Studio跟一下繼承關系,比看書來得快。
Android方面進階的書籍很少,如果要推薦只推薦兩本:
《Android開發藝術探索》
《APP研發錄》
《Android高級進階》
《深入理解Android內核設計思想》
這幾本書非常值得一讀。
❻ 求Android開發藝術探索的pdf版
pdf除非是買書的人自己掃描,不然這東西根本沒有流出來,作者自己都說簽過協議不能放出pdf的
❼ 《Android開發藝術探索》值得買嗎
值得買。《Android開發藝術探索》深入的講解View的工作原理,View的事件體系,屬性動畫,IPC機制,JNI技術,緩存與優化等知識。作者不僅僅沒有簡單的堆砌文檔,而是結合自身工作經驗來講解。由於這些技術屬於Android進階技術,所以不適合新手入門,比較適合進階中高的開發的工程師。
❽ 有沒有基於用android studio來編寫的安卓開發的書呀,求推薦,謝謝
Android Studio是Google官方推出的安卓開發工具,目前國內介紹這方面的書籍比較少,千夏軟體(www.qianxx.com)介紹基本很好的原版介紹Android Studio及相關開發技術的書籍,感興趣的可以讀一下:
Gradle for Android
主要介紹Android Stio構建工具的書籍
Android Studio Application Development
主要介紹使用Android Stio從事應用開發的方方面面
Learn Android Studio
詳細的介紹了如何使用Android Stio從事用用開發,並有詳細的例子。
❾ Android 開發者應該先看哪些文檔
入門《第一行代碼》;
進階《Android開發藝術探索》;
精通《Android源碼設計模式》;
......
......
隨時查閱官方文檔;隨時查看大神博客。
http://www.open-open.com/news/view/c7eed7 Android學習之路
http://www.android-doc.com/sdk/ Android API中文文檔
❿ android軟體開發工程師的進階之路應該如何走
小明首先需要購買一本Android入門的書籍,為了更快地學習Android,小明業余時間也都用來一邊看書一邊照著書中的例子敲代碼,結果2周時間小明就把這本書學了一遍。看完這本書後,小明對Android的歷史、結構、代碼規范等都有了一個大概的了解,並且,小明已經可以寫出一些簡單的Activity了。這個時候在小明眼裡,Android開發很簡單很好玩,通過在xml中擺放一些按鈕文本框什麼的就可以做一些界面了。
小明開始跟著他的技術導師做需求,一些簡單的小需求小明自然是不在話下了。突然有一天來了一個需求,該需求要求小明在Activity中為一個button加一個動畫效果,小明慌了:「完全沒接觸過,書上也沒有講,怎麼辦呢?」小明冷靜了下,打開了網路搜索,輸入「Android 動畫」,打開前幾個鏈接,小明恍然大悟,照著網上的例子把需求給實現了。後來導師告訴他:「學好Android,官方文檔是必須看的,既全面又權威」。然後小明如獲至寶,花了一年時間把上面的guide和training都看了一遍,並且他還動手抄了幾個小例子。
有一天,小明又需要做一個動畫相關的需求,這可難不倒小明,它熟練地打開了www..com,輸入「Android 動畫」,突然他楞了一下:」總不能每次寫動畫都要網路一下吧!「,於是他在CSDN開了一個博客,把動畫相關的知識點都寫上去,為的是後面再寫動畫相關的代碼就不用網路去搜了,事實如何呢?後面再寫動畫相關的代碼,小明的確不用再去網路搜了,因為通過寫一篇動畫博客,他把動畫相關的細節都已經記住了,這樣他就可以不用再去參考任何文檔了,後來小明還學會了把一些瑣碎的不方便放在博客上的東西寫到了印象筆記上面,什麼時候忘了10秒鍾以內都可以快速找回來,而不是花10分鍾去再次搜索一遍。
這里總結一下,Android入門的時候,需要有一本入門書,好好學習書中的內容,同時花一年時間把Android官方文檔中的training和guide看一遍,同時通過寫博客和記筆記的方式來做總結,建議讓自己的每篇博客都有價值些。通過一年時間的學習,相信每個人都可以達到中級工程師的水平。
技術要求:
- 基本知識點
比如四大組件如何使用、如何創建Service、如何進行布局、簡單的自定義View、動畫等常見技術
- 書籍推薦
《第一行代碼 Android》、《瘋狂Android》
中級工程師
小明經過一年的努力學習終於成為Android中級工程師了,月薪變成了17k。到了中級工程師,已經可以在公司里干很多體力活了,但是一些很重要的任務小明還不能一個人承擔起來,這個時候小明需要學習的內容就很多了,如下所示:
- AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的區別;
- Binder:從Java層大概理解Binder的工作原理,懂Parcel對象的使用;
- 多進程:熟練掌握多進程的運行機制,懂Messenger、Socket等;
- 事件分發:彈性滑動、滑動沖突等;
- 玩轉View:View的繪制原理、各種自定義View;
- 動畫系列:熟悉View動畫和屬性動畫的不同點,懂屬性動畫的工作原理;
- 懂性能優化、熟悉mat等工具
- 懂點常見的設計模式
學習方法
閱讀進階書籍,閱讀Android源碼,閱讀官方文檔並嘗試自己寫相關的技術文章,需要有一定技術深度和自我思考。在這個階段的學習過程中,有2個點是比較困擾大家的,一個是閱讀源碼,另一個是自定義View以及滑動沖突。
如何閱讀源碼呢?這是個頭疼的問題,但是源碼必須要讀。閱讀源碼的時候不要深入代碼細節不可自拔,要關注代碼的流程並盡量挖掘出對應用層開發有用的結論。另外仔細閱讀源碼中對一個類或者方法的注釋,在看不懂源碼時,源碼中的注釋可以幫你更好地了解源碼中的工作原理,這個過程雖然艱苦,但是別無他法。
如何玩轉自定義View呢?我的建議是不要通過學習自定義view而學習自定義view。為什麼這么說呢?因為自定義view的種類太多了,各式各樣的絢麗的自定義效果,如何學的玩呢!我們要透過現象看本質,更多地去關注自定義view所需的知識點,這里做如下總結:
- 搞懂view的滑動原理
- 搞懂如何實現彈性滑動
- 搞懂view的滑動沖突
- 搞懂view的measure、layout和draw
- 然後再學習幾個已有的自定義view的例子
- 最後就可以搞定自定義view了,所謂萬變不離其宗
大概再需要1-2年時間,即可達到高級工程師的技術水平。我個人認為通過《Android開發藝術探索》和《Android群英傳》可以縮短這個過程為0.5-1年。注意,達到高級工程師的技術水平不代表就可以立刻成為高級工程師(受機遇、是否跳槽的影響),但是技術達到了,成為高級工程師只是很簡單的事。
技術要求:
- 稍微深入的知識點
AIDL、Messenger、Binder、多進程、動畫、滑動沖突、自定義View、消息隊列等
- 書籍推薦
《Android開發藝術探索》、《Android群英傳》
高級工程師
小明成為了夢寐以求的高級工程師,月薪達到了20k,還拿到了一丟丟股票。這個時候小明的Android水平已經不錯了,但是小明的目標是資深工程師,小明聽說資深工程師月薪可以達到30k+。
為了成為Android資深工程師,需要學習的東西就更多了,並且有些並不是那麼具體了,如下所示:
- 繼續加深理解」稍微深入的知識點「中所定義的內容
- 了解系統核心機制:
1. 了解SystemServer的啟動過程
2. 了解主線程的消息循環模型
3. 了解AMS和PMS的工作原理
4. 能夠回答問題」一個應用存在多少個Window?「
5. 了解四大組件的大概工作流程
6. …
- 基本知識點的細節
1. Activity的啟動模式以及異常情況下不同Activity的表現
2. Service的onBind和onReBind的關聯
3. onServiceDisconnected(ComponentName className)和binderDied()的區別
4. AsyncTask在不同版本上的表現細節
5. 線程池的細節和參數配置
6. …
- 熟悉設計模式,有架構意識
學習方法
這個時候已經沒有太具體的學習方法了,無非就是看書、看源碼和做項目,平時多種總結,盡量將知識融會貫通從而形成一種體系化的感覺。同時這個階段對架構是有一定要求的,架構是抽象的,但是設計模式是具體的,所以一定要加強下設計模式的學習。關於設計模式的學習,最近一本新書推薦給大家《Android 源碼設計模式解析與實戰》,既可以學習設計模式,又可能體會到Android源碼中的設計思想,我最近也在閱讀此書。
技術要求:
- 稍微深入的知識點
- 系統核心機制
- 基本知識點的細節
- 設計模式和架構
- 書籍推薦
《Android開發藝術探索》、《Android 源碼設計模式解析與實戰》、《Android內核剖析》
資深工程師
這個階段的程序員也許並沒有太具體的學習路線了。