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

目录
相关文章
|
2月前
|
编解码 Java Android开发
安卓虚拟摄像头免root版,虚拟摄像头替换真实摄像头,jar代码开源分享
通过动态替换摄像头输入流的方式实现虚拟摄像头功能,代码经过简化展示核心逻辑。实际开发中还需要考虑视频编解码优化
|
2月前
|
Java Android开发
安卓虚拟摄像头过人脸,免root虚拟hook相机,虚拟相机hook版【jar】
两种Hook Android相机的方法:Xposed模块和Frida脚本。Xposed模块需要安装在已root的设备
|
3月前
|
编解码 自然语言处理 Java
安卓改机工具免root,一键过设备检测,串号SN码【jar即可实现】
本项目通过Hook系统API实现设备信息的拦截与修改,主要功能包括动态更改IMEI/SN等设备标识。核心技术基于Xposed框架(免Root可用VirtualXposed)
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
351 0
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
1153 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
前端开发 Java 编译器
classpath中存在多个jar存在同限定名的class classloader会如何加载
总之,合理组织类路径和使用现代化的构建工具,可有效避免类加载冲突,保证应用的稳定运行。
327 8
|
Android开发
解決Android报错:Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
解決Android报错:Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
375 1
|
Java Android开发
Android编译的jar里面是dex
Android编译的jar里面是dex
183 0
|
监控 安全 算法
【Android 安全】DEX 加密 ( Application 替换 | 兼容 ContentProvider 操作 | 源码资源 )(三)
【Android 安全】DEX 加密 ( Application 替换 | 兼容 ContentProvider 操作 | 源码资源 )(三)
182 0
【Android 安全】DEX 加密 ( Application 替换 | 兼容 ContentProvider 操作 | 源码资源 )(三)
|
安全 Android开发 数据安全/隐私保护
【Android 安全】DEX 加密 ( Application 替换 | 兼容 ContentProvider 操作 | 源码资源 )(二)
【Android 安全】DEX 加密 ( Application 替换 | 兼容 ContentProvider 操作 | 源码资源 )(二)
211 0