android重要知識點總結
Android知識點整理
一、四大組件
Activity (生命周期可編輯onResume和可見onStart,不可編輯onPause和不可見onStop)、Service (AIDL,開始方式)、BroadcastReceived(有序,無序) 、ContentProvider(Uri)
二、五大布局
LinearLayout 、RelativeLayout(降低布局嵌套) 、FreamLayout 、TableLayout 、AbsoluteLayout
三、通信機制
Intent(隱式,顯示,兩個之間的數據傳遞)、Service、BroadcastReceived、Handler(多線程)、sharedPreferred(如果跳轉的次數太多,可以考慮本地文件存儲了)、file(類似于sharedPreferred)
四、動畫
幀動畫、Tween動畫(移動、縮放、旋轉、透明)
五、ListView
各種布局加載(動態加載布局)、優化(convertView、ViewHolder、異步加載、分頁加載)、notifyDataSetChanged更新數據
六、Fragment
與Activity(使用FragmentManager)之間的通信、Fragment使用(getActivity())
七、線程、進程
1.進程:一個應用程序在內存中的鏡像
2.線程:一個進程中可以包含多個線程
多線程、多線程下載
Thread Runnable Handler AsyncTask
應用場景:耗時操作(一般指5秒)和定時操作(schedule Task)
具體場景:IO操作(網絡操作、文件操作、數據庫操作)、復雜的運算算法、消息接收方法的耗時操作、定時任務
3. 線程池的基本思想還是一種對象池的思想,開辟一塊內存空間,里面存放了眾多(未死亡)的線程,池中線程執行調度由池管理器來處理。當有線程任務時,從池中取一個,執行完成后線程對象歸池,這樣可以避免反復創建線程對象所帶來的性能開銷,節省了系統的資源。
八、http和socket
Http(短連接)特點是客戶端發送的每次請求都需要服務器回送響應,在請求結束后,會主動釋放連接
Socket(長連接) 特點 服務器監聽,客戶端請求,連接確認
區別、優缺點、返回碼的含義
返回碼200成功206部分成功404文件丟失503服務器未響應
九、數據存儲
文件存儲、SharedPreference(密碼、判斷)、SQLite(繼承SQLiteOpenHelper,生成SQLiteDatabase
對象來新建處理SQL語句,數據庫升級)、網絡存儲(上傳、下載)
十、自定義組件
兩種方式:include(標簽一般用merge);創建自定義控件(一般有響應按鈕時調用)
兩個主要方法measure和layout,要是自定義View,顯示時用setContentView
十一、適配器
Drawable(.9圖片)、 Layout 、Values(dimen) 、Java代碼控制 、weight
十二、開源框架、開源組件
框架:Volley 、xUtil 、okhttp、eventBus、Gson、festJson、imageloader、Picasso(獲取遠程圖片)、zxing(二維碼)
組件:pull2RefreshListView、SlidingMenu
十三、內存優化和程序優化
1.Android優化的布局(使用merge標簽優化層級、不需要立即加載的布局,設置為GONE,系統會跳過,不加載、使用ViewStub 實現按需加載、ListView的優化)、
2. 對內存的優化
1.Reckon(計算)首先需要知道你的app所消耗內存的情況,知己知彼才能百戰不殆
2.Reduce(減少)消耗更少的資源(BitmapFactory.Options設置inSampleSize, 這樣做可以減少對系統資源的要求;如果對圖片沒要求可以設置RGB_565(每像素占2字節,默認的是ARGB_8888占4個字節)opt.inPreferredConfig = Bitmap.Config.RGB_565;用Bitmap.recycle()方法來釋放Bitmap占用的內存空間)
3.Reuse(重用)當第一次使用完以后,盡量給其他的使用
4.Recycle(回收)返回資源給生產流
5.Review(檢查)回顧檢查你的程序,看看設計或代碼有什么不合理的地方。)
3. 數據庫使用完成后要記得關閉cursor
4.廣播使用完之后要注銷
5. 小tip: 避免創建不必要的對象最常見的例子就是當你要頻繁操作一個字符串時,使用StringBuffer代替String;避免使用枚舉,枚舉變量非常方便,但不幸的是它會犧牲執行的速度和并大幅增加文件體積;永遠不要在for的第二個條件中調用任何方法
十四、設計模式(24)
單例模式(application)、工程模式、策略模式、監聽者模式、觀察者模式等
十五、framework
1.準備Linux下的環境(python的安裝、Git的安裝(sudo apt-get install git)、安裝一些類庫、JDK的安裝(2.2以后要用jdk6.0))
2.下載源碼(安裝repo(基于git的管理工具)、初始化Repo客戶端(repo init –u **–b 版本名稱)、開始同步(repo snyc)、驗證GitAndroid版本(gpg –import 然后輸入秘鑰 保存之后,輸入 git tag –v tag_name))
3.Building (初始化source build、envsetup.sh 、lunch full(模擬器/full_crespo真機) –eng(開發者權限)、然后編譯 make j4(單核刷機))
4.在out/target/product/generic/路徑下有三個img文件(system.img/ramdisk.img/userdata.img)
Emulator啟動模擬器
5.系統的程序在哪 out/target/product/generic/system/app
系統源代碼位置 packages/apps/***
修改 sdk(make sdk)目錄: out/target/product/generic/sdk
十六、JNI
十七、驅動開發
十八、SDK開發
十九、數據加密
對稱加密、非對稱加密
二十、程序問題的處理
OOM、ANR等
二十一、版本控制
SVN(集中式)、Git(分布式,常用命令cd/clone/init/add/commit/remote add/pull/push)
二十二、回調方法
1.回調接口方法interface
2.回調接口的實現(一個類去繼承接口)implements
3.回調方法的調用 new 2中的類,調用他的方法
二十三、抽象方法和接口的區別
1.抽象類里面可以有非抽象方法但接口里只能有抽象方法
2.接口(interface)是抽像類的變體。在接口中,所有方法都是抽像的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽像的,沒有一個有程序體。接口只可以定義static final成員變量。
3.抽象類中可以為部分方法 提供默認的實現,從而避免在子類中重復實現它們, 提高代碼的可重用性,而接口不可以,這也是抽象類的優點所在
4.接口可以繼承多個,而抽象方法不行
二十四、第三方SDK
百度、高德、環信、SocketIO、友盟、leanCloud、Bomb、SharedSDK、ping++
看了“android重要知識點總結”的還看了:
1.高二政治必修四重要知識點總結(完整版)
2.管理學知識點總結
3.初中歷史重要知識點總結
4.公共基礎知識點總結
5.生物必修三第六章重要知識點的總結