zoukankan      html  css  js  c++  java
  • 把安卓源代码中的system app独立出来,像开发普通app那样开发

          个人建议首先依照android源码的ide/eclipse中的格式化xml和import导入到你编译的eclipse中,假设你编译的android源码是2.3以上的版本号的,建议用JDK6以上,提醒各位的是new androidProject不是Java project.
         此时你导入想DeskClock、Camera等没有调用到hide标签的项目时,这些项目都不会报错,你能够直接进行对应的改动或研究。呵呵,假设对应直接在eclipse或手机上执行的话,可能会提示你数字签名不对。这个你自己改下整个项目名重写个数字签名就可以,还有更狠的就是无论是手机还是模拟器你直击拿到root权限后,把原来的app删除掉,然后再执行你编译的源码。

    假设涉及到hide标签怎么办咧,比如setting、Launcher2等项目,请看以下怎样操作:

    以下以Launcher2为例,具体讲解一下:



    1.将Launcher2项目导入eclipse中。

    这时候Launcher2project已经导入到eclipse中了,只是这时候会有158个错误(呵呵,编译2.3.3的是有这么多。反正其它版本号也应该是有100多个,差不了多少).


    2.加入Launcher2使用的包文件。

    由于在Android源代码中,非常多方法、成员、类、包都被打上@hide标签。这些成员在SDK中没有公开,以至于在编译Launcher源代码时最常遇到的类android.view.View的成员mScrollX无法訪问。因此首先须要下载Android的代码而且编译好,由于要用到一些编译完毕的class.jar文件

    这里我们用到的有:(生成的包的路径为out/target/common/obj/JAVA_LIBRARIES)
    1)framework_intermediates/classes.jar :这个主要是android的框架类
    2)android-common_intermediates/classes.jar :这个包括com.android.common.Search这个类
    3)core_intermediates/classes.jar :这个包包括dalvik.system.VMRuntime这个类

    这些都是须要导入到project里面的包,这个能够通过配置project的Build Path来增加,
    右键project名称然后选择Build Path->Configure Build Path...->Libraries->Add Library->User Library->User Libraries...->New...
    然后将上面3个依赖的包一个个的增加进来,分别命名为android_framework,android_common,android_core.
    将3个包增加进来后,然后还须要将它们放到android2.3.3这个包的前面,能够在Build Path配置中选择Order and Export
    这时候就会发现Launcher2project以及没有错误了,也能够编译了。



    3.改动Launcher2包名称,在模拟器上执行更改后的Launcher2.

    改掉原始包的名字,切记使用eclipse的重命名机制(在包名上按F2可改动)。不仅是类的引用。还有非常多xml文件内部的引用(如import com.android.launcher3.R;)。仅仅要重命名不错。这些都能够一次性搞定的。

     

    New name填写你自己的包名,把以下四项所有勾选。点击“Preview”

    特别注意:你的项目最好不要放在中文路径下。不然rename时会出错,我就是開始放在中文路径下出错弄了非常久才发现错误。



    4.AndroidManifest.xml文件中面,找到这句话删除掉。

    (android:sharedUserId="android.uid.shared")

    这样就大功告成了,我是用2.3的launcher来做实验的,结果没问题,执行成功




  • 相关阅读:
    【BZOJ】【1833】【ZJOI2010】count 数字计数
    bzoj2588: Spoj 10628. Count on a tree(树上第k大)(主席树)
    NOIP2017金秋冲刺训练营杯联赛模拟大奖赛第一轮Day2题解
    NOIP2017金秋冲刺训练营杯联赛模拟大奖赛第二轮Day2题解
    51nod 1962 区间计数(单调栈+二分)
    51nod 1486 大大走格子(DP+组合数学)
    bzoj2276: [Poi2011]Temperature(单调队列/堆)
    5028: 小Z的加油店(线段树)
    bzoj2216: [Poi2011]Lightning Conductor(分治决策单调性优化)
    bzoj1057: [ZJOI2007]棋盘制作(悬线法)
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5204797.html
Copyright © 2011-2022 走看看