在Mac环境下配置dx终端指令
1、打开终端,进入HOME目录
cd $HOME
2、更新.bash_profile文件
touch .bash_profile
3、打开.bash_profile文件
open -e .bash_profile
4、加入dx文件所在路径,android sdk自带dx
export PATH=${PATH}:~/Library/Android/sdk/build-tools/29.0.3
5、保存并关闭.bash_profile文件 6、重启终端 7、验证配置结果
dx --version
8、结果
dx version 1.16
使用终端命令在Android中执行dex文件
0、创建Java源文件
public class HelloWorld {
public static void main(String[] args) {
print("Hello World!");
}
public static void print(String msg) {
System.out.println(msg);
}
}
1、编译Java源文件生成class文件
javac HelloWorld.java
2、编译class文件生成dex文件
dx --dex --output=HelloWorld.dex HelloWorld.class
使用Hex Fiend打开可以查看dex文件:


3、进入手机系统
adb shell
创建dex存储目录
generic_x86:/ $ mkdir /data/local/tmp/dalvik-cache
generic_x86:/ $ export ANDROID_DATA=/data/local/tmp
generic_x86:/ $ exit
4、将dex文件放进手机的dex存储目录
adb push HelloWorld.dex /data/local/tmp/dalvik-cache/
5、执行dex文件
adb shell dalvikvm -cp /data/local/tmp/dalvik-cache/HelloWorld.dex HelloWorld
6、输出结果
Hello World!
dex文件格式概览
dex文件格式主要组成:
| 名称 | 格式 | 说明 |
|---|---|---|
| header | header_item | 标头 |
| string_ids | string_id_item[] | 字符串标识符列表 |
| type_ids | type_id_item[] | 类型标识符列表 |
| proto_ids | proto_id_item[] | 方法原型标识符列表 |
| field_ids | field_id_item[] | 字段标识符列表 |
| method_ids | method_id_item[] | 方法标识符列表 |
| class_defs | class_def_item[] | 类定义列表 |
| call_site_ids | call_site_id_item[] | 调用点标识符列表 |
| method_handles | method_handle_item[] | 方法句柄列表 |
| data | ubyte[] | 数据区 |
| link_data | ubyte[] | 静态链接文件中使用的数据 |
dex文件格式实例图解析:

欢迎关注Android技术堆栈,专注于Android技术学习的公众号,致力于提高Android开发者们的专业技能!

Mac下dx终端指令配置与dex执行
本文详细介绍了在Mac环境下配置dx终端指令的方法,包括更新.bash_profile文件、设置dx路径等步骤,以及如何在Android中通过终端命令执行dex文件的全过程,从Java源文件的创建到dex文件的生成、推送至手机并执行。

783

被折叠的 条评论
为什么被折叠?



