Android之旅-Emulator WinXP下的编译

RK3572-Android16-记录一次OTA升级失败解决方案 这里记录一次解决RK3576 Android16 OTA 用Recovery 升级失败的一次解决案例,将部分经验作为总结。本次OTA升级耗时了几天,最终是RK给出的解决方案,再加上经验来解决了其它部分问题新平台,高一点的Android版本,可能本身有bug,多请教平台来,不要蒙着干,干不出来的。 阅读详情
 Google的开发手机平台Android的发布,可能将改变目前手机开发的模式,提供更多机会给个人,在朋友的鼓动下,决定学习之.
这里要简单描述下Android SDK的基本结构,如图

提供给用户的编程语言是Java,是朋友的强项(这个留给他吧),我只对lib和linux有点兴趣(呵呵,开源的东西学起来才有劲)
从google的android网站dowload最新的sdk(提供给java开发使用的),看了一下,基本是传统的模拟器开发模式(传统是传统,提供这个
还是很方便的),那么我们首先从模拟器emulator开始吧。
1、下载模拟器的源代码:
http://code.google.com/p/android/downloads/list
目前最新的版本是: android-emulator-m3-rc37.tar.bz2
在linux平台下解压,目录结构很简单,一个sdl(知道是什么不?)目录,一个qemu(居然是它!)目录,编译脚本build-emulator.sh,README文件。
在linux下编译很容易,就不说了,只是目前我使用的是windowsxp(想不用都不行,ubuntu还不支持我的声卡。。。),但是找遍了所有的网站,都没有介绍怎么在windows下编译模拟器的文章(汗。。。)
没办法,从头开始,先搞清楚里面是什么东西,step by step
SDL--在baidu上搜索了下,文章挺多的,不多说了,是一个跨平台的库,主要提供做linux上的game开发的,叫Simple DirectMedia Layer,想来估计是DirectX之类的,关键是能跨平台(也是为啥qemu要用它的原因了吧)。
QEMU--不多说了,上网搜索吧,一个超强的模拟器(同样跨平台)。说来google真是爽,那么多开源的东西给它用,它自己居然不开发更多的源文件,批评一下。
在Win32上编译SDL和QEMU的文章倒是一堆一堆的,基本上都不用Cygwin,而是使用MinGW,我看了下sdk下的dll文件,有一个 mgwz.dll,很眼熟啊,事实也证明偶是对的,google提供的sdk中的emulator也是在mingw上编译的(真迟钝。。。)
开始吧,先把MinGW安装好
1、到 http://www.mingw.org下载MinGW-5.1.3.exe以及MSYS-1.0.11.exe,安装好MinGW的环境,强烈建议不要网络安装,那叫一个慢,直接从mingw的网站上下载需要的文件,至于要安装哪些,看看MinGW-5.1.3.exe执行中解开的那个.ini就可以了。
重点说明:必须安装gcc 3.4.5以上的,我最早安装的是3.4.2,编译怎么也过不了,两个夜晚浪费在这个地方了(哭。。。。。)
MSYS是在Win32上的一个unix shell环境,好象执行速度比cygwin要慢。
安装过程不赘述,网上太多介绍了。
最后是要下载两个msys的工具下来,一个bash的最新版,一个是make的最新版,我下的是
make-3.81-MSYS-1.0.11-1.tar.bz2
bash-3.1-MSYS-1.0.11-1.tar.bz2
如果编译出现问题,最好连一个zlib的最新版也下一个吧。又是两个夜晚的血的教训,在win32上用linux的东西就是自己找罪受。。。

2、将emulator的源代码解压到/home/Administrator下,执行./build-emulator.sh,成功。(失败20次后。。。)

编译过程顺利的话,会生成一个local文件夹,这里是放SDL生成库的地方,编译qemu的时候需要使用它,主要是bin/sdl-config文件,提供libs和include文件的路径和版本信息。
sdl的版本是1.2.12,qemu的版本是0.8.2

3、因为我试过直接编译qemu的最新版,发现google改过了qemu的东西,核心没变,新增了一些硬件支持和增加了一些调试用的参数,具体的东西可以去读代码
android_sdl.c,这个是emulator的主函数文件。

4、模拟器编译成功后,直接运行提示没有system.img,这个到sdk的tools/lib/images下面拷贝kernel-qemu,system.img,ramdisk.img,userdata.img到emulator.exe的当前目录就可以了,把console和verbose都开起来,打印了很多启动信息,可以了解一下模拟的硬件配置,居然是ARM9的u,难怪qemu的target是arm-softmmu呢。

到这里,emulator的概貌搞清楚了,x86 code的emu,arm code的kernel和vm,java code的api接口,真够杂的。Bill最近说,不能惧怕复杂。恩,下一步继续探索kernel的世界。
自动驾驶仿真:基于Carsim开发的加速度请求模型 1、自动驾驶行业中,算法端对于纵向控制的功能预留接口基本都是加速度,我们需要给控制器仿真加速度的信号,控制器才会实现对纵向功能的控制。2、Carsim或者其他动力学软件,主要提供者节气门开度和主缸压力进行控制。我们在进行联合仿真时,往往都要通过PID的方式将请求加速度转换成对应的节气门开度与主缸压力传给动力学软件进行闭环控制。 阅读详情

相关推荐

小白的MatSWMM使用心路(二)——用matlab修改INP文件参数/使用matlab查找txt内容并修改多行内容

说是修改inp,但是里面的内容大部分还是讲怎么修改txt的……(?)。包含如何找到需要的参数(关键字)位置,以及修改那个位置的txt这样的内容。希望能帮助大家吧……Matlab你要多出好用的功能啊!

weixin_44276743的博客 4530

Windows XP下 Android开发环境 搭建

一、 Android开发环境搭建需要下载三个工具: 1、JDK下载网址: http://java.sun.com/javase/downloads/index.jsp 2、Eclipse 下载网址:http://www.eclipse.org/downloads/ 3、Android SDK 下载网址: http://developer.android.com 二、 安装

快乐&&平凡 8721

别再花屏了!手把手教你用STM32CubeIDE搞定LVGL 8.3移植(附完整源码)

本文详细介绍了如何在STM32CubeIDE环境下成功移植LVGL 8.3,解决常见的花屏问题。从环境配置、显示驱动优化到编译警告处理,提供完整的实战方案和源码示例,帮助开发者快速实现流畅的嵌入式GUI界面。特别针对STM32平台的DMA2D加速和内存管理进行了深度优化。

weixin_33739646的博客 242

2019年6月18号 AndroidStudio+夜神模拟器 搭建Xposed环境

前言:最近学习android逆向分析用到了Xposed,这里记录在搭建Xposed的流程以及遇到的一些坑。 准备工具 1.AndroidStudio(版本随意)我这里下载是当前最新的。直接到官网上下。 2.夜神模拟器,模拟器应该都无所谓,逍遥的也行,我的模拟器Adnroid版本是5.1.1 3.Xposed框架(装在模拟器上的)XposedInstaller_3.1.5-release-b...

ymxkybqw的博客 3618

硬件开发实践:高速 PCB 差分信号与时钟同步优化

由两条互补信号线组成(正负极)接收端只关注两线之间电压差共模噪声对两线同时作用,可被抵消。

2501_93174775的博客 394

避坑指南:AUTOSAR FlashDriver操作DFlash模拟EEPROM时,你最容易忽略的5个细节

本文深入探讨了AUTOSAR FlashDriver在DFlash模拟EEPROM操作中最容易被忽视的五大细节问题,包括地址合法性检查、操作时序控制、并发访问冲突、电源稳定性管理和寿命管理。通过实际项目案例和工程化解决方案,帮助开发者避免常见陷阱,提升汽车电子控制单元(ECU)的可靠性和稳定性。

weixin_42741930的博客 246

adb 常见错误问题解决

1. 无法识别设备 adb kill-server 然后再adb start-server 2. Segmentation fault, pm install /data… 直接使用adb向模拟器中安装app时报这个错误。 原因很简单,使用豌豆荚下载下来的app很多是用中文命名的,改成英文名重新adb install. 至于为什么,我想设计adb的工程师们根本没有考虑中文支持吧。

mznewfacer的专栏 2万+

Windows摄像头错误0xA00F4240根因与注册表修复指南

Windows摄像头错误码0xA00F4240常被误判为硬件故障,实则源于UWP应用模型下权限调用链断裂——核心是COM组件调用失败(HRESULT 0x80004003),本质反映Windows Runtime API对注册表策略键值(如CapabilityAccessManager\ConsentStore\webcam)的强依赖。该机制涉及服务状态、DWORD权限配置、ACL继承控制等多层校验,任一环节异常(如ValueLastModified时间戳损坏或ALL APPLICATION PACKAGE

weixin_31742871的博客 385

如何在你的安卓手机上运行Windows XP?

如何在你的安卓手机上运行Windows XP? 原理很简单:用虚拟机运行在安卓手机中,然后把Windows XP运行在虚拟机里面。这个虚拟机怎么做呢,用“BOCHS”的电脑版XP安装好之后再把影像文件放到安卓上,使用安卓版BOCHS运行XP。 详细步骤可以参考: http://www.techulator.com/resources/7523-How-Run-Windows-XP-Android.aspx 或者 http://www.androidgyan.com/how-to-run-install-

每一天都有新的希望 7990

Oracle Primavera P6实战手册:从入门到精通的企业项目管理秘籍

本文详细介绍了Oracle Primavera P6在企业项目管理中的实战应用,从环境配置到高级进度控制技巧,帮助用户从入门到精通。通过WBS设计、资源优化和情景模拟等核心功能,提升项目管理效率。特别适合需要处理复杂项目和多团队协作的企业用户。

weixin_29235923的博客 254

ROS 之 使用yocs_velocity_smoother对机器人速度进行限制

yocs_velocity_smoother是一个速度、加速度限制器,用来防止robot navigation的速度/转速过快,加速度/快减速过大。Bound incoming velocity messages according to robot velocity and acceleration limits. The velocity smoother nodelet runs together with the kobuki_node to apply robot’s velocity and .

https://shixuebin.gitee.io/hexo-blog/ 2622

一行代码检测XP/调试/多开/模拟器/root的android库

github地址 https://github.com/lamster2018/EasyProtector 使用 public boolean isLimit(){ boolean bLimit = false; bLimit = bLimit || EasyProtectorLib.checkIsRoot() ...

手指乐 1330

V4L2教程(1):Ubuntu V4L2开发环境搭建与设备探索

欢迎来到V4L2学习指南的第一篇!本文将带你从零开始,在Ubuntu系统上搭建完整的V4L2视频采集开发环境。无论你是想开发视频监控、视频会议还是机器视觉应用,掌握V4L2都是Linux视频开发的必经之路。 **本节学习目标**: - 理解V4L2的基本概念和架构 - 搭建Ubuntu下的V4L2开发环境 - 掌握v4l2-ctl等调试工具的使用 - 学会检测和配置USB摄像头设备

琅嬛福地 417

纯命令行界面下安装并运行官方Android emulator

纯命令行界面指没有安装Android studio。 下载sdk-tools 可以根据实际需要下载,不需要FQ(2018-04-07) 下载后只有一个tools目录。 平台SDK 工具包大小SHA-256 校验和 Windows sdk-tools-windows-3859397.zip 132 MB(138,449,982 bytes) 7f6037d3a7d6...

weixin_30664051的博客 372

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android emulator 不能使用的问题

Possible Solution: Android emulator 不能使用Bug出现在Android Studio中初次运行模拟器(Android emulator),使用默认的AVD设置也就是 报错,代码确认没有问题(之前一直按照Google的帮助文档做): emulator: ERROR: x86 emulation currently requires hardware accel

I_am_lmq的专栏 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android 开发入门实践(二):Kotlin 空安全,从可空类型到安全访问

延续 NewsApp 项目中的新闻标题练习,记录 Kotlin 安全调用。

Easyhood的博客 286

Android 模块化收口:能力组合框架、手写 LifecycleOwner 与热修复共存

二十多个模块业务高度相似却各有差异,核心矛盾在于“统一与灵活”的平衡。通过角色接口组合(如IProjectAware、IVoiceAware)实现能力按需注入,新增功能零侵入;用模板方法锁定生命周期流程,确保顺序一致;结合@CallSuper与工厂方法,既约束关键逻辑,又保留子类自由。最终实现:骨架统一、填空自由,管得住业务,又不侵入业务。

mmsx990的博客 397

Android 开发入门实践(十三):用 Intent、UiState 和 Reducer 理解 MVI 的状态更新

本文记录第141—145课对MVI架构的入门实践,通过“返回列表”功能逐步构建意图(NewsIntent)、状态(NewsUiState)与状态转换(reduce)机制。基于单向数据流,用户操作生成意图,ViewModel通过Reducer根据旧状态计算新状态,并通过StateFlow更新Compose界面。代码实现清晰分离关注点,强化了对状态管理、事件驱动与数据流的理解。

Easyhood的博客 316

Android Message源码阅读

本文梳理了Android Handler机制中Message的核心设计:链表结构、消息复用池(sPool)及回收机制,重点解析了异步消息与同步屏障(SyncBarrier)的协同机制。当主线程需优先处理UI绘制等高优先级任务时,系统通过postSyncBarrier插入屏障,使Looper跳过普通同步消息,优先执行标记为异步的UI渲染任务,确保帧率流畅。该机制是保障Android界面响应性的关键技术之一。

u012116089的博客 199

安卓部署Linux性能实测:一颗移动处理器,能否胜任日常 Linux 开发?

本文通过在一加Ace5上部署NimoteCode的ARM64 Linux环境,测试了其在CoreMark、SQLite编译及并行构建中的表现。结果显示,尽管单核性能约2.34GHz,多核扩展比达6.15×,但优化编译耗时仍高达35秒,反映移动处理器虽具备一定开发能力,却受限于文件系统开销与运行环境(如PRoot)。实际开发中,非优化构建效率较高,而并行编译可显著提速。结论:安卓手机可作为轻量级开发辅助工具,但无法替代桌面环境,真正价值在于便携性与即时响应,而非全功能替代。

一个不知名码农的专栏 321

CTF 命令执行题学习笔记:终端特殊字符 $IFS 与 %09 的用法(HelloCTF RCE-labs)

空格被过滤时:用%09(TAB)或$IFS代替空格关键词被过滤时:用通配符?或字符类[f]拼出被禁的词,让 WAF 在原始字符串里看不到它,shell 在执行时再展开这类技巧在后续的命令执行题里会反复用到,建议亲手在靶机上敲一遍感受一下。

YY888888_的博客 542

云手机私有化部署完整方案:基于ARM服务器搭建私有安卓云集群

ARM 服务器是私有化安卓云集群最优硬件底座,原生架构匹配 Android,高密度、低损耗,非常适合企业内网场景。整套私有化方案的核心,从来不是 “跑起来安卓”,而是隔离可控、可审计、可运维、可扩容。两条路线各有取舍:开源自建灵活、门槛高;商用私有化交付开箱即用、安全能力完备,是当前企业生产环境主流方案。六边云手机私有化方案,补齐了自建方案在驱动适配、管控平台、审计合规、信创适配上的短板,适合对数据主权、内网隔离有强需求的政企、自研 App、垂直行业客户。

a598652的博客 330

Android 开发入门实践(九):把新闻数据与页面状态交给 ViewModel

本文记录第110—117课学习成果:将页面标题、新闻列表及选中编号逐步迁移至NewsViewModel,通过ViewModelProvider获取实例并读取数据。页面调用ViewModel方法处理选择与返回,实现状态管理解耦。过程中纠正了对Activity重建机制的误解,并厘清mutableStateOf的可观察性与ViewModel对象生命周期的区别,深化了对Compose状态更新机制的理解。

Easyhood的博客 219

Android 17 全栈性能分析关键字与源码手册

FrameTimeline 找异常帧,ATrace 找阶段,thread_state 找等待类型,ftrace 找内核原因,Simpleperf 找 CPU 热点,驱动源码找最终触发条件;任何根因结论都必须回到同一对象、同一时间窗口和同一条依赖链。

weixin_43228946的博客 371

Android 顶点上传:Heap 到 Direct 的零拷贝,省的是 JNI 次数

一帧数十万次putFloat的性能瓶颈源于频繁跨JNI边界,每次开销远超传输字节数。通过将写入与上传解耦:用堆内ByteBuffer高速写入,最后一次性put(writeBuf)批量传至堆外DirectByteBuffer,将数百万次边界调用压缩为一次,实现近10倍性能提升。关键在于复用堆外缓冲区、统一端序,并结合“更新-绘制”分离,仅在数据变更时上传顶点,平移缩放时零开销重绘,彻底释放CPU瓶颈。

mmsx990的博客 476

谷歌相机9.2下载(GCam 安卓通用版 安装与使用说明)

谷歌相机9.2版移植自Pixel原生相机,支持Camera2 API的Android 10+设备安装,凭借多帧合成技术在夜景、HDR+与人像模式表现优异。可提升暗光画质、优化动态范围与背景虚化效果,支持视频防抖及配置文件自定义。安装需确认机型兼容性,建议备份原相机,避免冲突。资源可通过kuake链接获取,仅限学习测试使用。

2611_96675819的博客 148
上一篇: Android平台内核编译
下一篇: 偶然戒烟!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值