第三方apk锁屏

1.PackageManager 获取第三方锁 apk 程序信 息( ApplicationInfo ),主要是代码 (sourceDir) 和持久化资源路径 (dataDir) 。应该是 /data/app/XXX.apk /data/data/packagename/

2.ApplicationLoaders::getClassLoader方法获得一个应用程序类加载器,即第三方解锁屏应用程序,用它可以加载对应程序(apk)中的类和资源,用这个类加 载器,去加载第三方锁屏apk中负责 创建锁屏界面的类。


3.获取一个同第三方锁屏一样的上下文环境,Context(里面包含了同样的资源和ClassLoader),获取方法就是Context::createPackageContext.Orange的第三方解锁加载器是为了创建解锁整个View结构时,它的方法需要这个Context


4.定义一个第三方解锁屏的父类,该父类实现KeyguardScreen,然后所有第三方锁屏都实现该父类


5.建立一个第三方解锁屏的eclipse工程,导入/home/b697/gerrit/devr3/out/target/common/obj/JAVA_LIBRARIES/android.policy_intermediates/classes.jar包,为了能引用到第三方锁屏的父类。


以上这种方式弊端就是必须安装apk,无法 象小米似的不用安装,只替换资源


缺点很明显,如果keyguard框架变了,apk程序force close了,就都完了。

你可能感兴趣的:(第三方apk锁屏)