个人建议首先依照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来做实验的,结果没问题,执行成功

把安卓源代码中的system app独立出来,像开发普通app那样开发的更多相关文章

  1. 如何单独编译Android源代码中的模块

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6566662 第一次下载好Android源代码工 ...

  2. 【转】如何单独编译Android源代码中的模块--不错

    原文网址:http://blog.csdn.net//article/details/6566662/ 第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命 ...

  3. qemu-kvm-1.1.0源代码中关于迁移的代码分析

    这篇文档基于qemu-kvm-1.1.0源代码进行分析. 首先,源代码中的hmp-commands.hx文件里有下面内容: { .name = "migrate",/* 在moni ...

  4. 如何将 Area 中的 Controller 放到独立的程序集?

    目录 背景如何将 Area 中的 Controller 放到独立的程序集?备注 背景返回目录 本文假设您已经熟悉了 ASP.NET MVC 的常规开发方式.执行模型和关键扩展点,这里主要说一下如何使用 ...

  5. ASP.NET MVC:看 MVC 源码,学习:如何将 Area 中的 Controller 放到独立的程序集?

    背景 本文假设您已经熟悉了 ASP.NET MVC 的常规开发方式.执行模型和关键扩展点,这里主要说一下如何使用 ASP.NET MVC 的源代码解决一些问题. 如何将 Area 中的 Control ...

  6. 解压 Android 系统中的 system.img

    本篇文章讲解 system.img 是什么东西,以及它的打包和解包方式 system.img 是什么 system.img 是 Android 系统中用来存放系统文件的镜像 (image) ,文件格式 ...

  7. JRE System Library、Referenced Libraries、Web App Libraries的含义

    JRE System Library.Referenced Libraries.Web App Libraries 这三个都是jar包的存放集合. JRE System Library:指Java S ...

  8. 《AndroidStudio导入安卓源码-idegen》---可方便查看安卓源代码

    idegen是Android源码中的一个模块,需要编译一下.生成一个jar包.然后再进行构建生成AndroidStudio配置相关文件. > 什么是idegen 要将Android系统源代码工程 ...

  9. 【应用服务 App Service】如何移除App Service Response Header中包含的服务器敏感信息

    问题描述 有些情况下,当应用部署到App Service上后,在有些Response Header中,可以看见关于服务器的一些信息,这样会导致隐藏的安全问题,所以可以在web.config中移除某些关 ...

随机推荐

  1. linuxC编程实战 my_server.c例子问题总结

    今天看linux C 编程实战的my_server例子时,敲到这段代码,对其父子进程关闭socket 进行close调用产生疑问 如图中标注的三个close socket,思考子进程通信结束 关闭自己 ...

  2. CentOS中vsftp安装、配置、卸载

    1. 安装VSFTP 1 [root@localhost ~]# yum -y install vsftpd 2. 配置vsftpd.conf文件 [root@localhost ~]# vi /et ...

  3. 关掉PUTTY后,进程仍可以运行。

    如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令.该命令可以在你退出帐户之后继续运行相应的进程.no hup就是不挂起的意思( no hang up).该命令 ...

  4. 分页插件jquery.simplePagination.js使用

    利用ecshop后台,利用插件更改分页显示样式遇到的问题,由于是利用Ajax获取数据进行页面数据更新?所以出现了以下情况: 初始化页面前 : 分页更新后: 点击后出现了分页插件内容消失, 原因:分页一 ...

  5. YII 小部件实现的注册表

    今天来进行用户注册功能yii集成了很多验证框架,framework/validators下面,这个文件夹的最后一个文件CValidator.php 是总的验证信息,根据请求参数决定需要那种验证 如:u ...

  6. C#☞软件设计模型_基础

    建模图有助于理解.阐明和传达代码的构思和软件系统必须支持的用户需求. 若要描述和传达用户需求,您可以使用统一建模语言 (UML) 用例图.活动图.类图和序列图. 若要描述和传达系统的功能,您可以使用 ...

  7. 一个CS出身的基本素养

    从前天10号提交Paper之后,连三个晚上之后突然正常起来竟然变成倒时差状态. 这周打算给自己一个空窗期,好好想想下两到三个月要做的事. 好吧,除了"一日一算法",当下两个月还有一 ...

  8. 我学C的那些年[ch01]:浅淡C语言的编译过程

    前几天大致学习了C语言的编译过程,那么今天就和大家分享一下 首先,编译C语言,需要一个文本编辑器(windows自带的也行),和一个MinGW编译器(需要配置环境),就可以将.c文件编译成.exe文件 ...

  9. SQL Server 2008无日志文件附加数据库

    1.新建一个同名数据库. 2.停止数据库服务,覆盖新建的数据库主文件(小技巧:最好放在同一个磁盘里面,把新建的数据库主文件删掉或移开,再把要恢复的数据库主文件剪切过去,这样就可以节省时间.) 3.启动 ...

  10. BZOJ 1012 最大数

    Description 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作.语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度. 2. ...