1、AppCompatActivity比起Activity,多了ToolBar;在5.0之前,ActionBar界面在各个ROM中视觉效果不一致,碎片化严重,因此在安卓5.0种将ToolBar替代了ActionBar,用AppCompatActivity替代了ActionBarActivity;
2、单线程用StringBuilder因其效率较高,多线程用StringBuffer因其线程安全;
3、compileSdkVersion仅在编译时起作用,不会改变运行时的行为,新特性不会被包含到APK中,注意support Library也要使用对应的版本;而targetSdkVersion则规定了程序使用的 最高特性,会改变运行时的行为。minSdkVersion是 Google Play 商店用来判断用户设备是否可以安装某个应用的标志之一,开发时则主要用于API检查,如果使用了minSdk不包含的新API,会报错提醒。
4、比如你开发的targetSdkVersion设置为19(安卓4.4),那么虽然可以运行在安卓8.0的机器上,但是8.0的机器却不会以新特性例如动态权限、后台限制等来规范此应用,应用程序也开心的认为运行在一台安卓4.4的机器上,不用接受高版本的众多繁琐规范;越来越多开发者这样干规避高版本安卓对应用的权限规范,导致谷歌强制要求上架应用要升级到targetSdkVersion=26,并在年终要升级到targetSdkVersion=28;
5、在美国,21岁是成年的年纪,而API 21(安卓5.0)也是安卓成年的年纪;
6、遇到一个字符串有不同颜色、不同点击响应的需求,请使用SpannableString;
7、引用第三方SDK,要考虑到SDK文件里面可能有armeabi-v7a目录,如果主工程目录没有armeabi-v7a只有armeabi目录,会导致一些so库文件读不到出现运行时闪退,这类问题是很恶心的。
8、Android 版本兼容 — Android 6.0 之前,6.0-7.0版本,和 7.0后获取Mac地址方法:https://www.jianshu.com/p/16d4ff4c4cbe
9、【Android8.0适配】安卓26版本上要求Notification要设置Channelid,主要步骤是在Notification.Builder中设置Channelid,还有在NotificationManager中创建NotificationChannel;
10、安卓系统每分钟一次的广播:Intent.ACTION_TIME_TICK,注意该广播无法在清单文件中静态注册,只能在代码中手动注册;
11、Android 5.0(api版本21)出了一个新的onCreate方法,其通过PersistableBundle可以实现应用程序在掉电关机等异常情况下仍然能够恢复前台的数据,实现数据的持久化,需要在清单文件对应的Activity开启 android:persistableMode="persistAcrossReboots"