1.Android Studio 將module編譯打包成aar文件,module依賴的 (例如 )不會被打包進入aar文件,應用引入該aar文件(無論是本地引入,還是網路庫引入)時,都還需要在應用(app)module的依賴中填加aar module的依賴。否則應用運行時會crash。 因此,開發 ...
1.Android Studio 將module編譯打包成aar文件,module依賴的
(例如
compile 'com.zhy:autolayout:1.4.3'
)不會被打包進入aar文件,應用引入該aar文件(無論是本地引入,還是網路庫引入)時,都還需要在應用(app)module的依賴中填加aar module的依賴。否則應用運行時會crash。
因此,開發sdk庫(jar或aar)時,儘可能不依賴第三方庫
2.Android 線程、組件之間通信可以通過Handler消息處理器,BroadCast廣播,Service服務,EventBus。
3.Activity生命周期註意,還可以包含以下三個函數
//Activity視窗獲得或失去焦點時被調用,在onResume之後或onPause之後 @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); Log.i(TAG, "onWindowFocusChanged called."); } /** * Activity被系統殺死時被調用. * 例如:屏幕方向改變時,Activity被銷毀再重建;當前Activity處於後臺,系統資源緊張將其殺死. * 另外,當跳轉到其他Activity或者按Home鍵回到主屏時該方法也會被調用,系統是為了保存當前View組件的狀態. * 在onPause之前被調用. */ @Override protected void onSaveInstanceState(Bundle outState) { outState.putInt("param", param); Log.i(TAG, "onSaveInstanceState called. put param: " + param); super.onSaveInstanceState(outState); } /** * Activity被系統殺死後再重建時被調用. * 例如:屏幕方向改變時,Activity被銷毀再重建;當前Activity處於後臺,系統資源緊張將其殺死,用戶又啟動該Activity. * 這兩種情況下onRestoreInstanceState都會被調用,在onStart之後. */ @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { param = savedInstanceState.getInt("param"); Log.i(TAG, "onRestoreInstanceState called. get param: " + param); super.onRestoreInstanceState(savedInstanceState); } }