Android Framework高级开发-修改的系统Window上模拟器运行

framework学习路线和方法 之前分享过我转framework的经历,可以看这里《我是如何从Android开发转framework开发的》,今天根据自己实际工作感受整理出一份framework的学习路线和方法,仅供参考,如有不足,还望指正。学习framework是一件非常枯燥的事情,原因在于相比于app开发的coding,framework更侧重于对源码的reading,但学习它能让我们更深入的了解Android系统,增加自身的知识储备,降低自己在行业中的可替代性,延长自己的职业生涯,提高自身身价。 阅读详情

课程答疑和新课信息:QQ交流群:422901085进行课程讨论
[FrameWork实战课系列视频链接:
或者点击这里
专题博客系列:
Android 8.1 zygote 启动过程源码
Android Framework实战视频–Zygote的fork进程篇
Android Framework实战视频–SystemServer启动篇
Android Framework实战视频–SystemServer启动FallbackHome篇
Android Framework实战视频–FallbackHome进程启动及Activity启动篇
Android Framework实战视频–FallbackHome结束启动Launcher篇

1、Ubuntu编译拷贝好对应的img

这个部分在我们入门课已经有了讲解可以去看framework入门课:https://edu.youkuaiyun.com/combo/detail/2123

在out/target/product/generic_x86_64目录下有:

system.img system-qemu.img userdata.img vendor-qemu.img vendor.img kernel-ranchu-64 ramdisk.img

这里要选择system-qemu.img和vendor-qemu.img,这两个镜像是专门为qemu运行制作的,如果选择system.img 和vendor.img,则avd运行失败。

这里我们之前如果在图形界面的Ubuntu上肯定一个emulator命令就可以跑起来,看到如下好看的界面:
在这里插入图片描述
但是很多同学想着平时工作都是window多,也不可能天天使用Ubuntu办公,实在有些不方便,问老师是否可以考虑在window上模拟器运行起来我们编译的系统。这种需求其实还比较多,很多人一般都是使用一个阿里云什么只有一个命令行终端,根本不会有什么图形界面的Ubuntu,大部分公司服务器也一样只有个命令行终端,那么我们要实现的就是如下场景:
在这里插入图片描述
既然是学员们提出的需求,我这边当然就尽量想办法满足,分享出来让以后学员就不需要我单独一个个讲了。

上面我们已经编译成功了到out的文件夹吧对应的几个img和kernel拷贝到我们的和window共享的目录下(这个共享部分就不需要多讲了,可以自行百度Samba或者模拟器映射路径)
这里我拷贝到一个路径如下:
在这里插入图片描述

好那这里linux部分就完成了,接下就是window部分

2、window配置好对应的avd,替换对应img

2.1 首先在window端的android studio建立好一个avd,这个直接android studio就可以操作
在这里插入图片描述
先创建一个虚拟机
在这里插入图片描述
选择一个设备,这里我们选择一个pixel就行 1920 * 1080的
在这里插入图片描述
这里为设置选择一个rom,因为我们目的是想运行我们自己编译的aosp的rom,所以选择和我们最贴近的x86选择一个x86_64对月的一个O版本,因为刚好我们自己编译的rom也是这个,如果没有下载就点击下载一下
在这里插入图片描述
这里最后给我们创建模拟器命名为MyPhone
到此就完成了window本身的模拟器创建

3、替换window本身模拟器的img文件

上面已经实现了window模拟器的创建了,也可以运行模拟器了,但是我们目的是想要实现对我们编译的img运行,而不是sdk下载的img运行

在这里插入图片描述
这里大家去sdk路径下找到刚刚我们下载的镜像文件夹,路径看截图,大家看到其实它主要也就是几个img的集合,这里本质上我们只需要对各个Ubuntu拷贝出来的img覆盖到这个文件夹下即可以实现运行我们自己编译的rom img文件

注意:这里要选择system-qemu.img和vendor-qemu.img改名成system.img和vendor.img

最后运行命令:
在这里插入图片描述
然后打开命令行:
输入:./emulator -avd MyPhone 既可以
在这里插入图片描述
大家看运行起来了课程里面的img,因为这开机动画都是Android Framework高级实战课里面BootAnimation的成果
最后:大家想学习framework的可以去买我的实战和入门系列课,相对很实惠,也不要忘记加入qq群:422901085哦

如何有效学习Android Framework:从系统编译到Framework深入 学习Android Framework是一个需要持续探索和实践的过程,但通过系统编译、系统应用理解、深入Framework以及实际调试和案例实践,你将掌握从系统底层到高层应用的完整技能体系。这不仅能够让你在Android开发领域立于不败之地,还能为你打开更多职业发展的机会。如果你对Framework开发感兴趣,欢迎加入我的课程,和我一起深入探索Android系统的奥秘吧!QQ群:251662478 加入我们的QQ群,与更多志同道合的开发者一起交流学习。 阅读详情

相关推荐

Android Framework转型指南:从应用开发到系统服务理解

Android Framework是应用运行的底层契约,涵盖Activity管理、权限校验与窗口合成等核心机制。其原理基于服务协同(如AMS/PMS/WMS)与跨进程通信(Binder),技术价值在于保障稳定性、安全性和性能一致性。典型应用场景包括ANR分析、权限适配、窗口异常调试及后台保活优化。对应用开发者而言,掌握dumpsys命令、systrace追踪和系统日志解读,比通读AOSP源码更高效实用;通过adb shell工具链定位问题现象,再反向理解Framework服务交互逻辑,是实现从API调用者到

weixin_34183910的博客 314

想学framework的看过来,做过三年framework,自身总结了一套学习方法

做过三年framework,自身总结了一套学习方法,大致如下三点。勤加练习,一般性模块可以看的非常快。 1、高度抽象,构建框架 2、重要函数,深究细节 3、善用工具,及时总结 Android源码非常庞大,但设计很精妙。纵向分层,横向模块化,使得整个源码更易更新和维护。在手机厂商做framework的更倾向于说自己是做Android系统的,维护的模块主要包括ActivityManagerService、WindowManagerService、PackageManagerService、PowerManage

老皮的博客 2328

Android系统定制:实现运行时权限静默授予的两种核心方案

在Android应用开发中,运行时权限模型是保障用户隐私与系统安全的核心机制,它要求应用在访问敏感资源(如相机、位置)时,必须动态向用户申请授权。其技术原理在于,当应用请求危险权限时,系统服务PackageManagerService会协同PermissionController应用,触发用户交互弹窗以完成授权决策。这一机制的技术价值在于平衡了应用功能需求与用户隐私控制,但其标准交互流程在特定场景下(如企业设备管理、专用终端部署)可能带来体验与运维挑战。因此,深入理解并定制Android权限授予流程,成为系

weixin_30655569的博客 409

framework学习之路

记录一下自己学习framework的经历。 Binder知识点 Binder是系统各个组件的桥梁 Binder可以实现跨进程通信 选择Binder进程通信的原因性能和安全 Binder是通过ServiceManager和Binder驱动实现进程通信的 通信步骤(对于跨进程通信的双方,我们姑且叫做Server进程(简称Server),Client进程(简称Client

daxingqinshou的专栏 894

Android状态栏显示运营商名称:SystemUI源码修改实战指南

Android系统UI定制是移动开发中的高级话题,它涉及对系统框架层的深入理解与修改。其核心原理在于通过修改SystemUI等系统级应用的源码或资源,实现对状态栏、导航栏等全局UI组件的个性化控制。这项技术的价值在于能够突破普通应用的限制,实现原生、稳定且深度集成的系统功能增强,广泛应用于定制ROM开发、系统优化和深度个性化场景。例如,在状态栏常驻显示运营商名称,就是一个典型的框架层定制需求,它要求开发者精准定位CarrierLabel等关键组件,并理解其与Telephony服务的交互逻辑。本文将以这一具体

ciya3282的博客 396

Unity iOS Framework体积优化:从诊断到压缩的完整方案

在移动应用开发中,包体积优化是提升用户体验和转化率的关键环节。其核心原理在于减少冗余代码和资源,通过编译器优化、资源压缩等技术手段实现。从技术价值看,优化不仅能降低App Store下载大小,还能提升应用启动速度和运行效率。在Unity跨平台开发场景下,iOS Framework的体积膨胀问题尤为突出,这通常由未压缩的纹理资源、音频文件以及未剥离的托管代码导致。针对此问题,开发者可以运用纹理ASTC压缩、音频格式转换、IL2CPP代码剥离等方法,结合Xcode的编译器优化等级设置和Bitcode支持,系统性

深未来技术 670

学习Android Framework可以做什么?

其实很多新的学员都会问学习Framework后到底在企业里面干什么?具体哪些工作是需要Framework层面进行修改的,市场需求量大不大。 这个其实在我的课程第一节就有讲到相关的内容,即为什么要学习framework,具体可以看我的免费试看视频 这次我们重点介绍是哪些工作是需要学习 Framework知识,这里主要分为2大块与大家分享: 1、市场上所有智能设备终端厂商 即入职公司就是一个卖android设备的公司,安卓系统的设备目前有哪些呢 2、国内顶级互联网App开发厂商 主要业务范围:分析研究Frame

learnframework的博客 2361

Android开机霸屏与自启:从CATEGORY_HOME到系统定制的完整实现方案

在操作系统启动流程中,开机自启动是系统服务与应用初始化的重要机制。其核心原理在于系统启动完成后,通过广播或特定Intent触发预设组件的加载。在Android生态中,这一机制通过BOOT_COMPLETED广播和CATEGORY_HOME Intent实现,前者用于后台服务启动,后者则用于桌面应用接管。从技术价值看,这为智能设备、工业控制、自助终端等场景提供了设备即服务的可能性,确保设备开机即进入专用工作状态。在应用场景层面,广告机、餐饮终端、工控平板等设备都需要开机后直接进入全屏应用界面,避免用户误操作退

weixin_30615767的博客 402

Android模拟器开发系统应用全指南

Android模拟器是开发者测试系统级应用的重要工具,它通过虚拟化技术完整模拟设备环境,支持root权限和系统分区修改。系统应用开发需要处理特殊权限、签名配置和框架集成等挑战,而模拟器能高效模拟各种硬件配置和异常场景。本文基于十年开发经验,详解如何搭建高性能开发环境,包括硬件选型建议、AVD配置优化,以及系统分区修改、平台签名等核心技术要点。针对系统服务调试、权限冲突等典型问题提供解决方案,并演示开发自定义系统设置模块的完整流程。掌握这些技能可以显著提升系统应用开发效率,特别适合需要深度集成Android框

weixin_30591551的博客 355

Android与Linux内核关系解析:从底层原理到移动生态差异

Linux内核作为现代操作系统的核心组件,负责管理硬件资源、进程调度和内存分配等基础功能。其开源特性和模块化设计使其能够适配多种硬件架构,从服务器到嵌入式设备均有广泛应用。在移动设备领域,Android系统基于Linux内核构建,但针对移动场景进行了深度定制,例如引入了Wakelock电源管理机制和Low Memory Killer内存管理策略。这些优化使得Android能够在资源受限的移动设备上实现高性能与低功耗的平衡。Android通过Bionic C库和ART运行时等技术重构了用户空间,形成了独立的移

weixin_30247781的博客 429

Android动态逆向实战:ZjDroid脱壳与API监控全解析

在Android应用安全领域,动态分析是突破加固防护的关键技术。其核心原理在于,当应用运行时,其代码必须在内存中以可执行状态存在,这为获取原始逻辑提供了可能。通过Hook机制,可以拦截和监控应用的关键函数调用,实现运行时行为分析。这项技术的工程价值在于,能够有效对抗代码混淆、加密等静态保护手段,广泛应用于安全研究、漏洞挖掘和隐私合规检测。具体到Android平台,基于Xposed框架的模块化工具成为实现动态分析的重要载体。ZjDroid正是这样一款工具,它通过内存Dump和BackSmali功能,能够从运行

weixin_30800987的博客 444

Android 手机的高级终端 Termux 安装使用、busybox、安卓 手机 web

手机已经 root安装 tsu,这是一个 su 的 Termux 版本,是一个真正的 root 权限,用来在 Termux上替代su,操作不慎可能对手机有安全风险,因为官方封装了,所以安装也很简单:安装 tsu:pkg install tsu -y切换到 root:tsu退出 root:exittsu切换 root 用户时会弹出 root 授权提示,给予其 root 权限即可。在管理员身份下输入 exit 可回到普通用户身份。

freeking101的博客 10万+

prokka-原核及病毒基因组高效便捷注释

文章目录简介安装使用参考 简介 Prokka: rapid prokaryotic genome annotation 全基因组注释是在一组基因组DNA序列中识别感兴趣的特征,并用有用的信息标记它们的过程。Prokka是一款软件工具,可以快速注释细菌、古生菌和病毒基因组,并生成符合标准的输出文件。 安装 conda install -c conda-forge -c bioconda -c defaults prokka Test Type prokka and it should output its

Neptuneyut的博客 3312

Appium自动化测试开发(一)win11搭建Appium开发环境2022

一、安装JDK11 ​​​​​​Java Downloads | Oracle Download Android Studio and SDK tools | Android Developers ​​​​​​Download Android Studio and SDK tools | Android Developers

Elaine00 8289

STM32CubeMX——循迹传感器TCRT5000的使用

前言 人生如逆旅,我亦是行人。 ————苏轼《临江仙·送钱穆父》 一、介绍 TCRT5000描述:(带有晶体管输出的反射光学传感器) TCRT5000是一种反射式光学传感器,它包括一个红外发射器和一个3.5mm引线封装的光电晶体管,可阻挡可见光。还具有1mA 典型被测输出电流,2.5mm峰值工作距离,可应用传感与仪表,工业等行业。 TCRT5000具有紧凑的结构,其中发射光源和探测器布置在同一方向,通过使用来自物体的反射红外光束来感知物体的存在。工作波长为950毫米,探测器由光电晶体管组成

W_Oilpicture的博客 1万+

四足机器人关节电机FOC控制实战:从磁编码器校准到SVPWM调试避坑指南

本文详细解析了四足机器人关节电机FOC控制实战,涵盖磁编码器校准、电流环调试和SVPWM波形优化等关键环节。通过MIT Cheetah案例展示如何解决21倍电气误差问题,并提供相序自动校正、PI参数整定等实用代码片段,帮助工程师避开永磁同步电机(PMSM)控制中的常见陷阱。

weixin_29281915的博客 489

Windows 7环境下Android APK逆向工程实战:从IDA Pro静态分析到动态调试

逆向工程是理解软件内部工作原理、进行安全评估的核心技术,它通过分析程序的二进制代码来揭示其逻辑结构与数据流。其基本原理包括静态反汇编、动态调试和代码重构,能够帮助开发者深入理解系统机制、发现潜在漏洞。在移动应用安全领域,这项技术的价值尤为突出,可用于评估应用的安全性、分析第三方库行为,以及进行合法的漏洞挖掘。典型的应用场景包括移动应用安全审计、恶意软件分析和软件兼容性研究。本文聚焦于Android平台,详细演示了在Windows 7系统中,如何搭建包含IDA Pro、Android逆向助手和雷电模拟器的完整

weixin_30394981的博客 405

并网逆变器学习笔记8---平衡桥(独立中线模块)控制

参考文献:《带独立中线模块的三相四线制逆变器中线电压脉动抑制方法》---赵文心。

圆桌骑士的博客 7315

Android开发入门与实战:从环境搭建到性能优化

移动应用开发领域中,Android凭借其开放源代码和庞大的设备覆盖率成为主流选择。AOSP(Android Open Source Project)为开发者提供了深度定制系统的可能,而Android Studio作为官方IDE,集成了Gradle构建系统和各类开发工具。理解Activity生命周期和Fragment管理等基础组件是构建稳定应用的关键,这些核心机制直接影响应用的响应速度和内存效率。现代Android开发技术栈如Jetpack组件和Compose框架,通过声明式UI和响应式编程提升了开发效率。在

weixin_34088583的博客 507

别急着让AI画板!聊聊Cadence Allegro X AI和OrCAD X在实际PCB项目中的真实体验

本文分享了Cadence Allegro X AI与OrCAD X在PCB设计中的实际应用体验,探讨了AI辅助Layout的效率提升与潜在陷阱。通过高速ADC采集板案例,详细对比了AI与传统方法在电源平面分割、低速信号布线等任务中的表现,并总结了人机协作的最佳实践,为工程师提供实用参考。

weixin_30836759的博客 2208

电子元器件-逻辑器件篇:逻辑电平、CMOS逻辑、手册解读、逻辑电平转换,应用注意事项

常用的逻辑电平TTL、CMOS、LVTTL、LVCOMS、CML、ECL、PECL、LVPECL、LVDS、RS232电平RS422电平,RS485电平等。TTL和CMOS的逻辑电平按典型电压可分为四类:5V系列、3.3V系列,2.5V系列和1.8V系列。5V TTL和5V CMOS逻辑电平是通用的逻辑电平。3.3V及以下的逻辑电平被称为低电压逻辑电平,常用的为LVTTL电平低电压的逻辑电平还有2.5V和1.8V两种。

qq_60226558的博客 863

Windows下Android Studio环境配置全指南

Android Studio并非开箱即用的IDE,而是一套依赖操作系统底层能力的开发环境系统。其核心原理在于Java运行时(JDK)、构建工具链(Gradle)、SDK组件管理与虚拟化支持(WHP)四者协同工作。技术价值体现在规避权限冲突、保障构建一致性、提升模拟器性能及确保中文编码兼容性。典型应用场景包括新手首次搭建开发环境、企业级CI/CD本地复现、跨团队项目环境标准化。本文聚焦Windows平台特有的路径权限、JDK版本咬合、SDK命令行管理及Windows Hypervisor Platform配置

weixin_30399155的博客 377

使用安卓的IMU数据进行 行人航位推算(PDR)推算步长 附python 代码

加速度计数据、陀螺仪数据、重力传感器数据、姿态仰角数据。数据分析与定位轨迹生成主要使用Python离线完成。示意图。

三维点云技术探索 1914

Android开发瓶颈突破指南:从环境搭建到架构优化的实战路径

在移动应用开发领域,Android系统以其开放性占据重要地位,其技术栈的复杂性常使开发者面临多重瓶颈。从构建工具链的配置原理入手,理解Gradle依赖管理与版本兼容机制是项目稳定的基础。掌握性能优化技术,如内存管理与渲染管线分析,能显著提升应用流畅度与用户体验。这些核心能力在电商、社交等高频应用场景中至关重要,直接关系到用户留存与业务增长。本文聚焦Android开发中的典型挑战,通过剖析RecyclerView优化与架构模式选型等热词,为开发者提供从环境调试到系统底层的系统性突破方案。

weixin_30911451的博客 370

离散小波变换(概念与应用)

离散小波变换(概念与应用)

weixin_46713695的博客 4415

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: HAXM device is not found in Windows 7,Android Studio模拟器无法使用
下一篇: Android Framework实战开发视频--跨进程通信之Socket通信
千里马学框架
博客等级 码龄6年 1万+粉丝 650原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值