Android源码中添加 修改应用

news/2024/7/4 1:09:12

第一部分:添加一个新的应用

1. 在和系统相同版本的SDK目录下开发自己的android应用
2. 把开发的android工程放到源码的packages/apps/目录下
3. 在工程目录下添加Android.mk文件,修改LOCAL_PACKAGE_NAME :=test001 把工程名指定为自己的工程名,我加载的工程为test001
    LOCAL_PATH:= $(call my-dir)   
    include $(CLEAR_VARS)

    LOCAL_MODULE_TAGS := user

    LOCAL_SRC_FILES := $(call all-java-files-under, src)

    LOCAL_STATIC_JAVA_LIBRARIES := googlelogin-client

    LOCAL_PACKAGE_NAME :=test001
    LOCAL_CERTIFICATE := shared

    include $(BUILD_PACKAGE)

    # Use the folloing include to make our test apk.
    include $(call all-makefiles-under,$(LOCAL_PATH))
4. 回到源码目录,然后执行 . build/envsetup.sh 注意sh后面有个空格
5. 执行mmm packages/apps/test001  编译test001.apk包
6. 执行make snod,编译system.img包
7. 执行emulator &就可以在应用程序下看到自己编译的工程了

第二部分:修改原有的Android应用

1. 首先新建一个android工程,加载自己的java文件和资源文件
2. 在自己的android工程初步调试成功以后,把该工程的java文件,资源文件拷贝到联系人对应的java文件和资源文件目录

3. 然后在linux下执行以下命令,编译人联系人模块,把资源文件编译到联系人目录中
        . build/envsetup.sh
        mmm packages/apps/Contacts
4. 刷新android源码工程,这个时候你就可以在Contacts包目录下看到你新加的资源文件和源文件了,并可以在源码工程下修改代码并直接调试了
5. ?? 为什么不在android源码工程下直接添加源文件和xml资源文件了????
        答:因为我们的android源码工程师以java工程导入的,如果添加android的xml文件的话,java程序无法识别资源R文件,所以我们必须先把需要的
                xml资源文件先在linux下编译
6. 在源码工程修改后,则可在linux下再次执行联系人编译命令,并 make snod加载system.img文件,并启动模拟器(emulator &),就可以看到你的修改了。


http://www.niftyadmin.cn/n/4121158.html

相关文章

斯坦福大学iOS应用开发教程学习笔记(第二课) 计算器实现(mvc实战)

整个项目下载:https://github.com/junxianhu/Calculator,觉得有帮助的可以点击Star啊,谢谢啦。 界面不太好看 ==! 主要的文件目录如下: 贴几个关键的文件,其实注视都很详细&#…

NDK mk 文件分析

通过分析一个例子来了解NDK makefile文件的生成。例子"hello JNI" ,由NDK提供的例子 A. 目录结构 jni目录:包含本地源文件,eg:jni/hello-jni.c,该源文件实现了一个简单的共享库,实现了一个简单的…

哈佛告诉你

陈祖芬 哈佛某教授对学生说,你学我这门课,你就一天只能睡两小时。学生想,那么,我学四门课,我就没有睡眠时间了,我就得倒贴睡眠时间了。 于是—— 哈佛产的诺贝尔奖得主有33位。 哈佛产的美国总统有7位。…

中国武侠片经典剧情(^.^)

为什么80%的码农都做不了架构师?>>> 从小到大,可以说,我是一直看着中国武侠片长大的,中国武侠,确实有着自己的风格和传统,在世界影坛也有一定的地位,甚至有的国外朋友曾经问过我说&…

Activity LifeCycle 生命周期

1. Android中Activity的调用机制 据我的了解,Android中Activity跳转的实现,主要是通过栈的先进后出的原理设计的。当新建一个Activit的时候,把它压入栈,然后按返回键的时候,就出栈。android设置了容纳Activity栈的大小…

关于LUN、PV、VG和LV

1.划分LUN LUN只是一个逻辑的东西。在存储设备内部,LUN与物理硬盘的关系,如同主机中逻辑卷与物理硬盘的关系,也就是好像LV和PV的关系,在不同范畴。可以理解为LUN就是在做完RAID之后的逻辑盘上分出来的logic driver。 但不同的是&a…

重构:第一个案例

在写重构的学习笔记之前,首先我们需要向伟大的软件设计师Martin Fowler致敬,是他带给了我们重构的思想,敏捷的思想。 重构--改善既有代码的设计。意味着对现有运行中的代码进行新的修改、设计。这对很多项目经理来说是不可思议的,…

敏捷开发 慨叙

在开始写敏捷开发系列博客时,首先感谢伟大的软件设计师Martin Fower以及其他几位敏捷思想的创建人,是他们带给了我们新的编程思想,解决了毕业几年来一直困恼我的很多问题。 软件开发是一种对人类智慧的管理,对人大脑思维的“工厂化…