Ly 2017年Android 学习路线

2017-02-09  本文已影响104人  间歇性丶神经病患者

凌宇的android备忘录

  1. Android原有技术的深入
  2. Android Ar Vr 的学习 这个东西要从今天开始
  3. Android 软硬件 结合

生命周期

  1. onStart 和onResume 、onPause 和onStop 感觉差不多,但是他们有什么区别呢?
    其实他们2对都是差不多的,只是onstart和onStop是从Activity是否可见这个角度来说的,而onResume和onPause是从activiy是否位于前台这个角度来说的
  1. 可以简单地理解为:onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState)和 onRestoreInstanceState(Bundle savedInstanceState)只会在app异常终止地情况下被调用,而其他情况下他们不会被调用

  2. 栈:后进先出(吃了吐)
    队列:先进先出(吃了拉)

  3. Activity的四大启动模式:standard、singleTop、singleTask、singleInstance

    • standard 标准启动模式:每次启动activity都会创建一个新的实例,不管这个实例是否会存在;在这种启动模式下,谁启动了这个activity,那么这个activity就会运行在启动他的那个activity所在的栈中
    • singleTop 栈顶复用模式:如果新的activity已经位于任务栈的栈顶,那么这个activity不会被重复创建,同时会回调他的onNewIntent()方法,而且它的oncreate,onstart方法也不会被调用;但是如果该activity不是位于栈顶的话,则会被重复创建。
    • singleTask栈内复用方法:只要activity在一个栈内存在,那么多次启动此activity都不会重复创建实例,同样,系统也会回调onNewIntent()方法,如果栈内有其他activity,那么具有这个属性的activity会清除掉所有在它上方的activity,从而使自己处于栈顶
    • singleInstance 单实例模式:具有singleTask的所有特性,但是该启动模式的activity只能单纯地处于一个任务栈里面。

IPC 跨进程通信

  1. android使用多进程只有一个方法:在AndroidManifest.xml中给4大组件(Activity,Service,Receiver,ContentProvider) 通过指定android:proccess属性。 Ps: 其实还有另外一种方法:通过jni在native层fork一个新的进程
  2. 如果两个东西(四大组件之一)跑在了不同的进程里面,那么通过内存来共享数据的方法肯定都是会失败的,因为android的机制来说,不同的进程对应了不同的虚拟机,不同的虚拟机对应了不同的内存(内存都不同了,通过内存来进行共享数据,怎么可能会成功呢?)
    • 静态成员和单例模式完全失效
    • 线程同步机制完全失效
    • sharedPreferences的可靠性下降
    • Application会被多次创建
  3. 进程间通信的方法:
  4. 进程间通信的方法:
    • Messenger
    • Aidl
    • ContentProvider
    • Socket
四种方式的差别 image.png 自定义View.png

adb 命令行

  1. 如果在cmd中遇到了Permission denied 权限问题 可以动态申请root权限:** su root**
上一篇下一篇

猜你喜欢

热点阅读