如何将源代码编译后的文件编译到android中

在Android framework中修改资源文件时,在Android 4.0之前,都是直接在sourcecode/frameworks/base/core/res/res下面添加对应的资源文件,然后编译framework-res即可,但是这种情况到了Android 4.1就有改变了。按照以前的方法在编译的时候却会报错,提示找不到引用的资源文件,一般情况下找不到资源文件有以下几个原因: (1). 资源id写错了,导致id不匹配; (2). 未编译framework-res,从而导致无法找到资源文件; 比如你在framework中添加了一张,但你在编译framework-res之前去编译引用该资源的SystemUI,那肯定是找不到的。 (3). 未import正确的资源包; 在frameworks/base/core/res/res下编译生成的资源文件保存在out/target/common/R/com/android/internal/R.ja 可以先在该R.ja内看有没有你的资源id,然后检查源代码有没有: import com.android.internal.R; (4). 没有修改frameworks/base/core/res/res/values/public.xml; 第四点是Android 4.1才需要做的,在Android 4.1之前,我们添加一个资源文件,编译时会自动添加到public.xml中,但到了Android 4.1却不会了,需要手动添加,比如: 添加了一个布局文件,则需要在public.xml中添加如下代码: 添加了一个字符串,则需要在publ①编译源码(为了确保生成了.ja文件LOCAL_STATIC_JAVA_LIBRARIES +=别名,如R.ja;如果编译过,则无需再次编译)ic.xml中添加如下代码: 添加了一张,则需要在public.xml中添加如下代码: 在布局文件中新增了一个控件的id,则需要在public.xml中添加如下代码: [html] view plaincopy 新添加的资源仿照public.xml中原有的方式加上即可。

android 源码编译_Android源码编译电脑配置android 源码编译_Android源码编译电脑配置


android 源码编译_Android源码编译电脑配置


android6.0.1源码编译报错如下,求教

IDEA(AS是基于InliJ

方法/步骤

在Android6.0的frameworks/base/core/ja/com下面增加代码,发现有如下编译错误:

Error: out/target/common/obj/JAVA_LI从 Android 7 开始,Android 源码编译时默认使用 Ninja,编译时,会先把 makefile 和 bp 转换成 ninja 再进行编译。这个转换过程非常慢(需要遍历处理所有关联的 makefile、bp 文件),即使只是通过 mm 或 mmm 编译某个模块,也会有很多因素触发 ninja 文件的重新生成,而这对基于源码开发的模块很不友好,编译好慢!BRARIES/com.slam._intermediates/classes.jar: unknown package name of class file com/slam//slamInfo.class

搜索build目录下,发现build/core/tasks/check_boot_jars/check_boot_jars.py脚本里CheckJar函数会打印上面的提示,在该文件的main函数调用该函数前,会先调用LoadWhiist函数加载白名单列表文件,加载的文件为调用check_boot_jars.py脚本时传进来的参数,继续搜索,发现在build/core/tasks/boot_jars_package_check.mk文件中会调用到该脚本,并且参数是build/core/tasks/check_boot_jars/package_whiist.txt,故而修改该TXT文件,添加如下内容:

com.slam.

com.slam...

接下来make clean后再make编译的,确认能编译通过。

如何把应用程序app编译进android系统

为 Launcher 和 SystemUI 准备一份开箱即用的指令,尽情玩耍吧~

把常用的应用程序编译到img文件中,就成了系统的一部分,用户不必自己安装,当然也卸载不了;

我们先看看它的 :

同时也可以删减系统自带的应用程序,精简系统;

1.buildtargetproduct 目录下generic.mk文件:

PRODUCT_PACKAGES :=

AccountAndSyncSettings

DeskClock

AlarmProvider

Bluetooth

Calculator

Calendar

testMid

CertInstaller

DrmProvider

Email

Gallery3D

LatinIME

Launcher2

Mms

Music

我们添加一个testMid 应用名称。

packagesapps 目录下,修改android.mk文件。

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-subdir-ja-files)

LOCAL_PACKAGE_NAME := testMid

LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)

注:LOCAL_PACKAGE_NAME := testMid (包名必须和generic.mk中添加的相同)

编译源码,可以看到在

outtargetproductdkv210app

目录下生存了testMid.apk了。这时.img也包含了此应用。

-------------------------------------------------------------------

特殊情况:有时,应用需要包含jar包,这时的app导入源码时会出现问题:

MODULE.TARGET.JAVA_LIBRARIES.libarity already defined by ... stop

由于 LOCAL_STATIC_JAVA_LIBRARIES := libarity 会引发错误信息。

目前解决方法是:

buildcore 目录下修改base_rules.mk

ifdef $(module_id)

#$(error $(LOCAL_PATH): $(module_id) already defined by $($(module_id)))

endif

$(module_id) := $(LOCAL_PATH)

(2)、删除原厂(Telchips)带源码的应用程序,如DTV_DVBT

在/dev/echips/m801/dev.mk

注释掉相应语句:

# PRODUCT_PACKAGES +=

同时,在/out/target/product/m801//app 找到相应的.APK包,并删除

android源码用64位系统编译了 怎么运行在32位的手机上

LOCAL_LDFLAGS += -m32

android源码编译64位改成32位的办法(转载)

You are attempting to build on a 32-bit .Only 64-bit build environments are supported beyond froyo/2.2.

需要进行如下修改即可,

将./external/clearsilver/cgi/Android.mk

./external/clearsilver/ja-jni/Android.mk

./external/clearsilver/cs/Android.mk

四个文件中的

LOCAL_LDFLAGS += -m64

注释掉,或者将“64”换成“32”

LOCAL_CFLAGS += -m32

然后,将

./build/core/main.mk 中的

ifneq (64,$(findstring 6Framework'来让AS将它作为一个Android工程,从而方便调试代码.4,$(build_arch)))

改为:

ifneq (i686,$(findstring i686,$(build_arch)))

使用 Ninja 提升模块编译速度

Camera

AOSP 在源码中已经内置了一个 ninja 执行文件,路径为: ./prebuilts/build-tools/linux-x86/bin/ninja

简单使用PATH="/usr/local/in:/usr/local/bin:/local/in”的话,我们关注它的两个参数就行了

举个栗子:

就这样,不需要通过 mm 或者 mmm 命令,目标产物同样生成了。我们看看耗时:

可以看到,整个编译在 18s 完成了,相比动辄七八分钟的 mmm ,效率提升还是很可观的。

虽然 ninja 很方便,但要用它来编译单个模块,还是有一些限制和注意事项的:

SystemUI:

android源码编译,如何在/data目录下创建文件夹导入文件。文件直接放out/target/././data目录里好像没用

./external/clearsilver/util/Android.mk

您好,修改mk编译的话是编译不到data里面去的。你可以在sh脚本里面添加拷贝命令,在开机时候拷贝到data里面。比如编译后文件在/etc/xxx.xx ,sh脚本就可以这么写cp //etc/xxx.xx /data/etc/xxx.xx。

Ja代码 收藏代码

求解答,Android源码编译时怎的添加第三方jar包

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += 别名:libs/包名.jar

可以参二、配置AS的JDK、SDK考源码的Android.mk 或者 从网上找找相关ARM-配置交叉编译环境:的资料

ubuntu12.04编译android源码要多久

2.把testMid包放入

这个关键是要看你的电脑配置情况,以及代码的附加情况,有的平台软件会附加很多东西上去,编译就比较慢了。

LOCAL_CFLAGS += -m64

我们这边使用的是四核八线程的电脑,32GB内存,

原生代码 4.4 八线程编译40分钟左右,5.1,一个半小时左右,6.0的大约一个小时,以上是原生代码编译模拟器的时间。

高通代码6.0编译一般需要两个小时左右,mtk的也是两个小时左右,

ARM_PRODUCT_PATH设置

Ja代码 收藏代码

方法一:(Android源码编译)

1. 进入A--重新编译,这时可以通过了。ndroid源码目录—android frameworks native cmds

2. 创建一个目录,参考其他目录写:Android.mk panda.cpp

3. mm

4. 到该目录到ARM板—Install: out/target/product/vstar//bin/i2c

5. 板子运行

方法二·:(ubunt配置交叉编译

1.Android源码交叉编译工具位置:android prebuilts gcc linux-x86 arm

2.将交叉编译工具拷贝至ubunt

3.打开配置文件 — sudo vim /etc/environment

4.添加:/opt/toolchain-4.5.1/bin 到path中

5.使之生效 — source /etc/environment

如何使用Android Studio开发/调试Android源码

一、修改Android

Studio(以下简称AS)的内存配置

因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio.vmoptions中-Xms和-Xmx的值。文档中使用的是748m,

可自行修改。

在IDE中添加一个没有classpath的JDK,

这样可以确保使用源码里的库文件

三、生成导入AS所需配置文件(.ipr)

②检查out/host/linux-x86/framework/目录下是否有idegen.jar

如果idegen.jar不存在,执行:

mmm

在5.0.1的源码中会生成res.ja的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。

我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。

③执行

dlopment/tools/idegen/idegen.sh

等待出现类似下面的结果:

Read

excludes:

5ms

Trersed

tree:

44078ms

这时会在源码的根目录下生成android.ipr和android.iml两个InliJ

IDEA社区版开发的)的配置文件

④在AS中打开源码根目录下新生成的android.ipr

四、解决源码中跳转错误问题

①为当前工程设置正确的SDK和JDK

②设置'Modules'的依赖

先将所有依赖删掉,只留下上图'1'所指向的两个(注意:这里删除全部只是为了方便。如果确实用到了.jar,在将它们的路径添加进来就可以了.

如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)

点击上图中'2'指向的'+'并选择上图'3'指向# SampleDVBTPlayer 的'Jars

or

directorie注释掉错误信息:s'选项,依次将frameworks和external文件夹添加进来

五、DEBUG源码

可以通过给刚导入的工程在'Modules'中添加'Android

在弹出的选择进程(Choose

Process)对话框中,勾选显示所有进程,选择要DEBUG的代码所在的进程,点击OK即可.

六、其它

代码中很多地方提示Call

requires

API

Ll

x....

出现这个问题是因为AS将工程当做安卓应用程序工程了,且源码中没有指定minSdkVersion.

只需在源码根目录加一个声明minSdkVersion的AndroidManifest.xml文件即可(分享了一个AndroidManifest.xml)。

也可以考虑使用build.gradle来解决该问题。

android studio怎样编译qgroundcontrol安卓源码

Launcher:

android studio怎样编译qgroundcontrol安卓源码

,一般来说现在流行在网上作,如果手机上相对方便一dlopment/tools/idegen/些,因为在手机上只需要网页或者软件APP就可以完成了。