framework编译应用代码

代码编译
APP或Service代码单编调试
 1、在aosp文件目录下在将环境变量加载到内存中,在终端中输入下面命令

source build/envsetup.sh
2、选择平台编译选项

lunch
3、输入后会出现一个选择列表,然后输入你想要的项目的序号即可。如下所示我这里选择的7,也可以直接lunch 7或者lunch test_high-userdebug

You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
4. aosp_mips64-eng
5. aosp_x86-eng
6. aosp_x86_64-eng
7. test_high-userdebug
8. test_high_12g-userdebug
9. test_high-userdebug
10. test_low-userdebug
11. test1_high-userdebug
12. test1_low-userdebug
13. aosp_arm-userdebug
Which would you like? [aosp_arm-eng] 7
4、然后就是编译代码,编译代码方式有两种

第一种:

make命令编译

在源码项目中找到你想要编译的模块下的Android.mk文件找到LOCAL_PACKAGE_NAME或者

LOCAL_MODULE字段

 

然后把对应的参数值加在make命令后执行。例:

make 参数值
第二种:

可以使用mm命令和mmm命令

mm 是编译当前文件夹下的mk文件

mmm /xxx/xx/x 是编译/xxx/xx/x指定目录下的mk文件

第一种和第二种的区别在于第一种make编译会把有关联的模块也都编译了,第二种只是编译当前模块。

建议尽量用第一种,如果你的模块调用了其他模块在其他模块也有改动时编译出的文件会有问题。

5、编译成功后会给你一个文件输出的路径。将路径下的APK push到车机对应的目录中,push成功后需要同步重启下。

adb root
adb remount
adb push out/target/product/xxx/system/app/xx/xx.apk /system/app/xx/xx.apk
adb shell sync
adb reboot
 lib模块代码单编调试
lib代码编译和apk编译前面步骤是一样的,只是输出的产物不同。这种情况不能和apk一样只是单独把编译出来的文件做替换。还要将frameworks下的相关的文件一起替换。例如:

adb push out/target/product/xxx/system/framework/xx.jar /system/framework/
 
adb push out/target/product/xxx/system/framework/boot-xx.vdex /system/framework/
 
adb push out/target/product/xxx/system/framework/arm/boot-xx.art /system/framework/arm/
 
adb push out/target/product/xxx/system/framework/arm/boot-xx.art.rel /system/framework/arm/
 
adb push out/target/product/xxx/system/framework/arm/boot-xx.oat /system/framework/arm/
 
adb push out/target/product/xxx/system/framework/arm64/boot-xx.art /system/framework/arm64/
 
adb push out/target/product/xxx/system/framework/arm64/boot-xx.art.rel /system/framework/arm64/
 
adb push out/target/product/xxx/system/framework/arm64/boot-xx.oat /system/framework/arm64/
xx是你编译模块的名字
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在 Android Studio 中编译 Framework 代码可以通过以下步骤: 1. 打开 Android Studio,选择 File > New > Import Project。 2. 在 Import Project 窗口中选择 Framework 代码所在的目录,点击 Next。 3. 在下一个窗口中,选择默认选项,点击 Next。 4. 等待 Android Studio 完成项目导入。 5. 在左侧导航栏中选择 Project,展开 app 目录,找到 build.gradle 文件并双击打开。 6. 在 build.gradle 文件中添加如下代码: ```java dependencies { implementation project(':framework') } ``` 7. 在左侧导航栏中选择 Gradle,点击 Refresh 按钮。 8. 在 Gradle 控制台中,选择 framework > Tasks > build > assembleDebug。 9. 点击运行按钮开始编译 Framework 代码编译完成后,可以在项目的 app/build/output/apk/ 目录下找到生成的 APK 文件。 ### 回答2: 在Android Studio中,要快速编译framework代码,可以按照以下步骤操作: 1. 首先,打开Android Studio并载入项目。 2. 在项目中找到"app"文件夹中的"build.gradle"文件,双击打开。 3. 在"build.gradle"文件中,可以找到"dependencies"部分。 4. 在"dependencies"部分中,添加以下代码: ```java implementation project(':framework') ``` 其中,":framework"是指framework模块的名称,根据自己的项目设置进行修改。 5. 保存并关闭"build.gradle"文件。 6. 在项目根目录找到"settings.gradle"文件,双击打开。 7. 在"settings.gradle"文件中,添加以下代码: ```java include ':framework' ``` 保存并关闭文件。 8. 再次打开"build.gradle"文件,点击顶部的"Sync Now"按钮,以同步项目配置。 9. 接下来,在菜单栏中选择"Build",然后选择"Make Project"。 10. Android Studio将开始编译framework代码,并在编译完成后显示构建成功的消息。 通过以上步骤,我们可以在Android Studio中快速编译framework代码,并获得编译成功的结果。请注意,进行编译前,请确保项目中已经包含了正确的framework代码,并进行了正确的配置设置。 ### 回答3: 在Android Studio中,编译framework代码可以通过以下步骤进行加快: 1. 启用增量编译:增量编译让Android Studio只编译发生更改的代码文件,而不是每次都编译所有文件。可以在项目的 `gradle.properties` 文件中添加以下代码:`android.incrementalJavaCompile=true`。这样设置后,只有发生更改的文件才会被重新编译,可以节省编译时间。 2. 使用Instant Run:Instant Run 是Android Studio的一个特性,允许在应用程序仍在运行时快速应用代码更改。在Android Studio中,点击 `Run` 菜单,然后选择 `Enable Instant Run` 来启用此功能。Instant Run 可以避免重新编译整个项目,而只编译修改的代码部分,从而加快编译速度。 3. 配置编译选项:在项目的 `build.gradle` 文件中,我们可以设置编译选项来加快编译速度。例如,可以通过设置 `minifyEnabled` 为 `true` 来开启代码混淆,这可以减少应用的二进制大小并提高运行效率。此外,我们还可以使用 `dexOptions` 来配置 Dalvik Executable (DEX) 文件的优化选项,例如开启分离Dex文件、减少Dex方法数等,以加快应用编译和运行速度。 4. 增加编译缓存:Android Studio提供了构建缓存的功能,它可以缓存构建过程中的一些输出文件,从而加快后续构建的速度。可以在项目的 `gradle.properties` 文件中添加 `android.enableBuildCache=true` 来启用构建缓存。 总结:通过启用增量编译、使用Instant Run、配置编译选项和增加编译缓存等方法,可以在Android Studio中加快framework代码编译速度,提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

s_nshine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值