Android 生成jar installable 控制生成的是dex还是class

简介: 五月打卡第30天

添加 Java 可执行程序

源码添加

在 device/xxx/xxx/ 目录下创建以下的目录和文件:

hellojava
├── Android.bp
└── com
└── android
└── main
└── HelloJava.java
其中 Android.bp 的内容如下:


java_library {
    name: "hellojava",
    installable: true,
    product_specific: true,
    srcs: ["**/*.java"],
    sdk_version: "current"
}

这里着重解释一下 installable 这个选项,如果不指定 installable: true, 则编译出来的 jar 包里面是.class 文件。这种包是没法安装到系统上的,只能给其他 java 模块作为 static_libs 依赖。

指定 installable: true, 则编译出来的 jar 包里面是 classes.dex 文件。这种才是 Android 虚拟机可以加载的格式。

HelloJava.java 内容如下:

package com.android.main;

public class HelloJava
{
public static void main(String[] args)
{
System.out.println("Hello Java");
}
}
接着在 device/xxx/xxx/Rice14.mk 中添加:

PRODUCT_PACKAGES += \
hellojava
接下来编译系统:
配置installable=true的jar包生成在out/target/product/rk3568_t/product/framework/hellojava.jar 包结构如图所示
image.png

没有配置installable的jar生成在out/target/product/rk3568_t/obj/JAVA_LIBRARIES/hellojava_intermediates/javalib.jar 包结构如图所示
image.png

目录
相关文章
|
3月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
82 0
|
3月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
216 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
3月前
|
Android开发
解決Android报错:Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
解決Android报错:Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
102 1
|
3月前
|
前端开发 Java 编译器
classpath中存在多个jar存在同限定名的class classloader会如何加载
总之,合理组织类路径和使用现代化的构建工具,可有效避免类加载冲突,保证应用的稳定运行。
124 8
|
6月前
|
Java Android开发
问题:Android requires .class compatibility set to 5.
问题:Android requires .class compatibility set to 5.
29 1
|
6月前
|
Java Android开发
Android编译的jar里面是dex
Android编译的jar里面是dex
72 0
|
6月前
|
Java Android开发
Android module 打包成aar或jar
Android module 打包成aar或jar
225 0
|
Java Maven Android开发
Android studio 中引用jar的其实是Maven?(一)
由于Studio比eclipse多了一步对工程构建的步骤,即为build.gradle这个文件运行,因此其引入第三方开发jar包与lib工程对比Eclipse已完成不同,引入第三方jar与lib工程显得并没有那么友好了,因为过程中会涉及更多内容,而且你必须认清楚studio的目录结构。
1098 0
|
Java 开发工具 Maven
Android studio 中引用jar的其实是Maven?(二)
上一篇:Android studio 中引用jar的其实是Maven?(一) 搭建maven仓库:   去了解一个新的事物的时候,最好的方式就是去使用它。例如去了解一座城市的时候,最好的方式就是乘坐公共交通工具。
1722 0
|
3天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。

热门文章

最新文章