编译 framework.jar包

今天在项目中遇到个非常头疼的问题,主要是因为自己第一次做Framework,对底层编译什么的完全不了解导致的。

情况是这样的,我们需要自己编译Framework运行在Galaxy S上,其他同事都可以正常编译一个大约为4M的framework.jar,直接adb push /system/framework下重启手机即可。

但是我的电脑在第一次正常编译之后生成的framework.jar才十几k,第二次编译就报make: 没有什么可以做的为"all_modules"的bug。

查了很多资料才知道Android原生编译framework是生成framework.jar(1x.kb) 和framework.odex(8M左右)的两个文件,模拟器中使用的就是framework.odex而不是framework.jar

也就说我编译的是正常的。

而想要把odex文件打包进framework.jar中,需要在编译之前选择lunch模式为8(android 4.1.1_r3的源码)。这样就只会生成framework.jar(大约4M)的文件。再替换真机上的framework.jar即可

全过程为:

1.下载源码

2.source build/env......sh

3.lunch

4.8

5.make framework

之后直接make framework即可.

编译 framework.jar包相关推荐

  1. android自定义控件 jar,Android Studio引用自定义的framework.jar包

    1.在app/libs/目录下添加framework.jar包. 2.打开build->Edit Libraries and Dependencies,把libs/framework.jar放到 ...

  2. Android开发之引用framework.jar中的方法 | 引用framework.jar包

    实际上网上写了很多最终就总结出来一句话而已,二种方法 方法一(强烈建议使用) 在app下面的gradle中配置如下信息,跟android目录同级,jar包的引用路径可以使用相对路径libs/frame ...

  3. Android Studio使用编译framework.jar

    原址 在使用 Android Studio 编译系统应用的时候,有时需要用到非公开的API,在以前,一般是通过反射去调用隐藏的API,但是这样就会存在性能隐患.这里介绍如何将 framework.ja ...

  4. IDEA编译的JAR包运行出现“没有主清单属性”

    运行编译好的包出现:  XXX.jar 没有主清单属性 解决方案就是: 确保MANIFEST.MF文件在 src/main/resources/META_INF/ 而不是 src/main/java/ ...

  5. Eclipse中Jar包的反编译(通过jar包查看源码)

    很多时候我们在公司工作时,在Eclipse引用其他人封装好的jar包时是看不到源码的,这样一来就不能很好得理解他人的意图,于是就需要借助反编译的帮助了.好了,下面是反编译的正确使用方法. 一.下载ne ...

  6. 2021年 最新 多阶段构建dockerfile实现java源码编译打jar包并做成镜像

    多阶段构建指在Dockerfile中使用多个FROM语句,每个FROM指令都可以使用不同的基础镜像,并且是一个独立的子构建阶段.使用多阶段构建打包Java应用具有构建安全.构建速度快.镜像文件体积小等 ...

  7. Windows下的Matlab与Java的混合编程,Java调用matlab编译的jar包(linux下请看我另外版本!)

    近来因为甲方需要做拟合等功能,需要用到matlab软件,并将其功能在java中实现,然后在服务器上也要实现,因为之前根本没有听说过,所以我苦心泣血,狂干一星期找到了,踩了无数个坑,终于实现了,因此想分 ...

  8. 手动将java文件打包编译成jar包

    心血来潮,很多idea工具都有打包的功能,却想试试怎么手动打包! 具体步骤如下: 1.编写一个java文件(Hello.java) public class Hello{public static v ...

  9. android7.x版本编译framework.jar无效解决

    Android.mk添加: LOCAL_DEX_PREOPT := false# make framework -j32# adb shell # rm -rf /system/framework/a ...

最新文章

  1. Windows 7防火墙设置详解(三)
  2. boost::push_relabel_max_flow用法的测试程序
  3. 一位资深程序员的成长故事
  4. IOS开发基础之音频工具类封装AVAudioPlayer
  5. ubuntu之Unable to lock the administration directory(/var/lib/dpkg/), are you root?13 Permission denie
  6. 【转】功能测试的经验总结
  7. C语言 二维数组做函数参数的几种情况
  8. 匿名函数-lambda
  9. Android中对文本文件的读写处理
  10. Python模块(进阶3)
  11. 单片机C语言基础知识篇
  12. windows10序列号即将过期解决办法
  13. PLC与7种常见输入输出设备的连接方式
  14. L3立法试水,为自动驾驶产业带来什么?
  15. 敏捷成熟度评估模型-AMM评估管理实践与技术实践
  16. vivo 提前批图像算法工程师(AI方向)一面+hr面
  17. 极客时间 Redis核心技术与实战 笔记(实践篇 集群)
  18. 时间序列数据的白噪声检验
  19. BiocManager安装R包解决下载速度太慢的问题
  20. 数据结构—— 构造散列函数的六种方法【直接定址法-数字分析法-平方取中法-折叠法-除留余数法-随机数法】

热门文章

  1. iscsi网络存储服务
  2. mysql解决编码问题
  3. 学习Jsoup(二)
  4. 设计师和程序员-拓展知识关系网
  5. Spring框架最终注解标签注入方法
  6. java cookie p3p_利用P3P实现单点登录和COOKIE的跨域读写
  7. commit分拆多个 git_git如何合并只有两个commit到一个?
  8. python有float行吗_python – 有什么方法可以在将pandas系列从str转换为float时跳过不可转换的行?...
  9. shell for 循环_linux之shell编程(三)
  10. linux设置activemq开机启动,Activemq(centos7)开机自启动服务