windows上运行arm32架构的安卓模拟器

说明

主要功能:在win10上研究和学习32位arm汇编指令的执行
环境如下

主机环境: windows10
目标模拟器环境:armeabi-v7a

调试环境搭建

1、下载android studio

下载地址:https://developer.android.com/studio?hl=zh-cn在这里插入图片描述

2、安装android studio
直接下一步即可,我把安装位置放到了D盘 `D:\arm\android-studio\bin`
3、配置android studio

3.1 安装完成进入到bin文件夹,打开studio64.exe,如果提示创建项目,随便创建一个即可,进入到主页,点击设置–>SDK Manager
在这里插入图片描述
3.2 配置SDK存放位置,我的改成了D:\arm\AndroidSdk,安装SDK Tools标签下面的ndk编译器,选好后点击apply等待安装
在这里插入图片描述
3.3 创建模拟器
在这里插入图片描述
随便选一个,然后下一步
在这里插入图片描述
选择 Other Images,下载了Android 4.1的 arm32版本镜像,(其它没有测试)
在这里插入图片描述
下一步,打开快速启动,RAM设置为512M,点击完成即可
在这里插入图片描述

4、脚本打开模拟器

模拟器存放位置在用户的.android/avd目录
在这里插入图片描述
通过命令行打开模拟器 D:\\arm\\AndroidSdk\\emulator\\emulator.exe -avd dev1

在这里插入图片描述

5、adb连接测试

在这里插入图片描述

6、IDA远程调试

6.1 将IDA7.0下面的dbgsrv中的文件android_server上传到模拟器
命令:adb push android_server /data/user

6.2 登录到模拟器
命令

adb forward tcp:23946  tcp:23946   # 端口映射
adb shell
cd /data/user 
chmod 777 android_server
./android_server

在这里插入图片描述
6.3 IDA远程连接
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

c编译环境配置

  • 参考官网配置: https://developer.android.com/ndk/guides/ndk-build?hl=zh-cn

1、新建Android.mk,内容如下

LOCAL_PATH := $(call my-dir)
LOCAL_ARM_MODE := arm
LOCAL_MODULE := hello
LOCAL_SRC_FILES := hello.c

include $(BUILD_EXECUTABLE)

2、新建Application.mk,内容如下

APP_ABI := armeabi-v7a
APP_BUILD_SCRIPT := Android.mk
APP_PLATFORM := android-16
APP_OPTIM := debug

3、新建hello.c,内容如下

#include <stdio.h>

int main()
{
    while (1)
    {
        printf("helloworld\n");
        getchar();
    }
	return 0;
}

4、新建compile.bat,内容如下

D:\\arm\\AndroidSdk\\ndk\\27.0.11902837\\ndk-build.cmd NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk

在这里插入图片描述

5、成功编译后生成程序
在这里插入图片描述

6、拷贝到设备上运行
在这里插入图片描述

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值