Framework中的app为什么在编译的时候需要到源码中编译:
因为缺少必要的包(源码)—-在连接的时候是以class文件来连接编译的
以Systemeui为例:
缺少这个包
寻找android源码的时候可以找到这个包:
知道framework在编译的时候会打包自己的java源文件,于是在打包的out文件中寻找打包的这个
:其实也是能够找到的:
还有很多Permission denied(当然这是在别人权限下的查找……)
当然最后找到了
里面的jar包:
打开jar包里面是classes的dex文件:
/****************************/
反驳以上观点
已经证实了,并不是被编译成为了所谓的更彻底的dex文件,而是在sdk中标注了@hide所以在源码编译中是有该api而sdk中没有。因此可以通过更换sdk 中的api来达到效果。
看组图吧!
同样是在寻找 这个类
。当然这次完成的项目中就是:
这种情况是为何呢?
程序当然是可以跑起来的,运行也没有问题。
具体操作步骤:(替换sdk中的android.jar包)
Sdk中的android.jar中的android文件(应该也基本上就是framework层的jar包)
两个文件中源码中的android文件夹要较于sdk中的大很多。这应该是很多源码中的类文件,及一些jar包被屏蔽或者hide掉了。打上了hide的标签。这样应该基本上是可以开发lancher或者setting之类的了。
,因为有梦,所以勇敢出发,选择出发,便只顾风雨兼程。