其他

  1. targetSdkVersion 表示在这个版本做过充分测试,更高版本的新功能不会启用。

  2. 尽量不用system.out来打印,而该用loglogt+回车能快速生成类名的TAG

  3. 新建活动,用Empty Activity的方式,可以快速生成xml布局文件和在AndroidManifest里注册活动。

  4. onBackPressed()方法可以替代onKeyDown()方法来监听系统返回键。

  5. 项目一般都有活动的基类,在基类的onCreated()方法里添加Log.d(TAG,getClass().getSimpleName();能在打开活动的时候快速知晓活动的类名,项目交接时方便找到类。

  6. Android6.0及以上版本,运行时权限(即危险权限),用

ContextCompat.checkSelfPermission(Content context,PermissionName permissionName)

方法来检查是否授权,未授权需要调用

ActivityCompat.requestPermission(Activity activity,String[] permissions,int
 requestCode)

方法请求授权,在onRequestPermissionResult回调方法里可以得到用户的授权操作结果。

7.getExternalCacheDir()方法获取应用关联缓存目录,Android6.0后,读写SDK为危险权限,存储文件用这个方法可以跳过申请运行时权限这一步。

8.Android7.0之前,用Uri.fromFile(file对象)来获取Uri对象,7.0后直接使用本地真实路径是不安全的,所以用FileProvider.getUriForFile(Context context, String s, File file)方法来获取Uri对象,使用FileProvider需要在Androidmanifest文件中对其进行注册。

9.四大组件用android:process指定进程的时候,":a"方式为当前应用私有进程,其他应用组件不能和它跑在同一个进程里;不以这种方式的为全局进程,其他应用通过ShareUID的方式可以跑在同一个进程,不过ShareUID和签名必须相同。

10.同一个应用内开启多进程,application会初始化多次,因此在多进程的情况下不要在application里做初始化操作,要做初始化操作的话需要判断进程名。

11.CountDownLatch是一个用来控制并发的很常见的工具,它允许一个或者多个线程等待其他的线程执行到某一操作。如跨进程通信中,连接service时等待,在serviceconnection返回binder对象后,再继续操作。

你可能感兴趣的:(其他)