在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文件:

通过终端命令生成并在手机上运行dex文件_第1张图片

3、进入手机系统

adb shell

创建dex存储目录

generic_x86:/ $ mkdir /data/local/tmp/dalvik-cachegeneric_x86:/ $ export ANDROID_DATA=/data/local/tmpgeneric_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文件格式实例图解析:

通过终端命令生成并在手机上运行dex文件_第2张图片

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

更多相关文章

  1. Android Studio ——Android 使用Pull方法解析XML文件的方法
  2. Android的raw下视频文件的读写-日记
  3. 成功解决 Android 下载中文文件名
  4. 【Android】使用msysgit编译Android下的C文件
  5. [Android]attrs.xml文件中属性类型format值的格式
  6. Android cocos2d-x开发(二)之create-android-project.bat文件的修
  7. android 之使用任意XML资源文件

随机推荐

  1. android 横竖屏限制如何配置
  2. android里发送mail的几种方式
  3. Maven开发Android指南 2 配置android-mav
  4. android sdk setup时呈现:Failed to fetc
  5. android 画虚线、实线,画圆角矩形,一半圆角
  6. Android(安卓)NFC架构分析
  7. Android(安卓)侧滑菜单的实现
  8. 通过WifiManager,DhcpInfo获取android IP
  9. Android(安卓)获取状态栏的高度
  10. Android启动优化