1、AppCompatActivity比起Activity染坯,多了ToolBar;在5.0之前丘逸,ActionBar界面在各個ROM中視覺效果不一致单鹿,碎片化嚴重,因此在安卓5.0種將ToolBar替代了ActionBar,用AppCompatActivity替代了ActionBarActivity深纲;
2仲锄、單線程用StringBuilder因其效率較高,多線程用StringBuffer因其線程安全囤萤;
3昼窗、compileSdkVersion僅在編譯時起作用,不會改變運行時的行為涛舍,新特性不會被包含到APK中澄惊,注意support Library也要使用對應(yīng)的版本;而targetSdkVersion則規(guī)定了程序使用的?最高特性,會改變運行時的行為掸驱。minSdkVersion是 Google Play 商店用來判斷用戶設(shè)備是否可以安裝某個應(yīng)用的標志之一肛搬,開發(fā)時則主要用于API檢查,如果使用了minSdk不包含的新API毕贼,會報錯提醒温赔。
4、比如你開發(fā)的targetSdkVersion設(shè)置為19(安卓4.4)鬼癣,那么雖然可以運行在安卓8.0的機器上陶贼,但是8.0的機器卻不會以新特性例如動態(tài)權(quán)限、后臺限制等來規(guī)范此應(yīng)用待秃,應(yīng)用程序也開心的認為運行在一臺安卓4.4的機器上拜秧,不用接受高版本的眾多繁瑣規(guī)范;越來越多開發(fā)者這樣干規(guī)避高版本安卓對應(yīng)用的權(quán)限規(guī)范章郁,導致谷歌強制要求上架應(yīng)用要升級到targetSdkVersion=26枉氮,并在年終要升級到targetSdkVersion=28;
5暖庄、在美國聊替,21歲是成年的年紀,而API 21(安卓5.0)也是安卓成年的年紀培廓;
6惹悄、遇到一個字符串有不同顏色、不同點擊響應(yīng)的需求医舆,請使用SpannableString俘侠;
7象缀、引用第三方SDK蔬将,要考慮到SDK文件里面可能有armeabi-v7a目錄,如果主工程目錄沒有armeabi-v7a只有armeabi目錄央星,會導致一些so庫文件讀不到出現(xiàn)運行時閃退霞怀,這類問題是很惡心的。
8莉给、Android?版本兼容?—?Android?6.0 之前毙石,6.0-7.0版本,和?7.0后獲取Mac地址方法:http://www.reibang.com/p/16d4ff4c4cbe
9颓遏、【Android8.0適配】安卓26版本上要求Notification要設(shè)置Channelid徐矩,主要步驟是在Notification.Builder中設(shè)置Channelid,還有在NotificationManager中創(chuàng)建NotificationChannel叁幢;
10滤灯、安卓系統(tǒng)每分鐘一次的廣播:Intent.ACTION_TIME_TICK,注意該廣播無法在清單文件中靜態(tài)注冊,只能在代碼中手動注冊鳞骤;
11窒百、Android 5.0(api版本21)出了一個新的onCreate方法,其通過PersistableBundle可以實現(xiàn)應(yīng)用程序在掉電關(guān)機等異常情況下仍然能夠恢復前臺的數(shù)據(jù)豫尽,實現(xiàn)數(shù)據(jù)的持久化篙梢,需要在清單文件對應(yīng)的Activity開啟 android:persistableMode="persistAcrossReboots"