ROM制作与修改第一课:Android系统概述
Android系统概述
Android的英文意思为机器人。
当然我们这里只是一个操作系统的代号。例如微软的Windows也称作视窗操作系统说白了Android就是一个小型微缩化的Linux操作系统+通讯模块。我们的安卓手机的基本形态就是Linux+通讯模块组成的智能手机Linux负责操作以及使用通讯则是通过通讯模块通过radio与手机的交流所以我们简单的理解就是。Android为手机操作系统的代号。而这个操作系统就是基于Linux进行微缩小型化的。下面介绍的便是官方的ROM文件组成
系统分区和各个分区功能
1.Android-info.Txt的内容为手机的各个参数包括手机型号/销往地区/boot版本
解析文件内容
modelid: PG3213000cidnum: HTC__044mainver: 1.38.707.1hbootpreupdate:13
modelid为手机的型号PG32130为HTC S710E
cidnum是手机的区域号.HTC__044代表的是香港地区.也就是说这个ROM是港版的.
2. boot_signed.img
这个类似于我们电脑的系统内核.通常我们不会修改这个文件.不过涉及移植的时候会接触到.
3.hboot
这个类似于咱们电脑的BIOS.关系到手机的启动信息.包括加载系统文件的先后
4.radio
手机与通讯模组交流的部分.通俗说法就是系统模块与通讯模块交流的中介
5.recovery
类似于ghost的一个组建。可以快速还原备份系统数据原理和ghost相同
6.System.img
这个文件是我们需要修改的。定制美化的文件都在这里。这个相当于咱们装系统时的系统镜像。所有系统文件都在这个文件中,我们可以通过工具将其解压出来
7.userdata.img
很明显.通过文件名我们可以知道这个文件包含的是用户数据。由于定制暂时不涉及该文件.暂时不做介绍
官方ROM以及非官方ROM的区别
左边是官方的ROM。右边是自制ROM。
自制的ROM中。
System文件夹为左边官方ROM中的system.img解压分解后定制的。
Boot.img不变。还是原版ROM中的boot.img如果超频的话可能会修改该文件
Meta-inf是我们自制ROM特有的文件。该文件实质是一个脚本。刷机时会运行该脚本并按脚本的内容进行ROM的安装
最大的区别就是我们做ROM一般只涉及system这个文件夹.而官方的ROM等于是把整个手机的软件部分全部替换了。
官方ROM分解
官方ROM我们可以通过explore2fs解压出来
点击File打开选择我们需要打开的system.img
然后我们就能看到整个system.img里面的文件
官方ROM的文件夹共包含11个文件夹以及一个build.prop的文件
我们在该文件点右键有个export diectory即可导出ROM文件到一个文件夹
要提醒的是…这个工具可能会假死…大家稍等一会即可
解压到文件夹后如下图所示
文件夹有
Trash0
文件夹是配置文件不过在定制ROM中暂时是不需要的我们也就不介绍了
App
文件夹是我们所有的系统软件以及部分UI界面的软件
Bin
文件夹里面是系统的库文件.类似于系统组件服务,我们修改暂时不涉及该文件夹。所以略过
Customsize
文件夹包含我们的开机动画,语言设置信息,以及一些铃声背景
Etc
文件夹里面的就是我们的驱动了,包括wifi以及蓝牙.运营商和apn设置.
Fonts
这个文件夹是我们的字体文件,我们修改字体就是修改该文件夹的字体
Framework
该文件夹涉及部分UI界面。包括信号图标等。大部分是支持组件.
Lib
文件夹里面都是系统的驱动文件,具体介绍见下文
Media
文件夹里面是媒体文件,类似铃声。Sense3.0中的天气动画就是在这里
Usr
文件夹是用户键盘输入输出配置文件.修改按键功能就是修改该文件夹里面的配置文件
Xbin
文件夹是系统支持库,类似我们root的busybox,sqlite.su等、就像电脑的.Net4组件
Build.prop
该文件包含配置信息以及部分版权信息。我们通常在该文件留名。。。
下面是具体的文件介绍
App文件夹
AccountSyncManager.apk 账号管理程序(删除设置里–账户与同步进不去)
ApplicationsProvider.apk 应用程序支持服务(我没删)
AppSharing.apk app分享(基本无用,我闪了)
Bluetooth.apk 蓝牙(保留)
BrcmBluetoothServices.apk 蓝牙相关(我没删)
Browser.apk 自带浏览器(我饶过他了)
Calculator.apk 计算器(自己决定吧)
Calendar.apk 日历(会自启动,但我觉得挺好用的)
CalendarProvider.apk 日历存储服务(删除貌似会出现错误)
CertInstaller.apk 证书安装程序(我留着)
CheckinProvider.apk 签入服务(不知道干嘛的,建议别删)
Clicker.apk 键盘校准(貌似是)
com.htc.FMRadioWidget.apk 桌面收音机插件(插件类都可以删,自己决定)
com.htc.MusicWidget.apk 桌面音乐插件
com.htc.NewsReaderWidget.apk 新闻插件
com.htc.rosiewidgets.battery-1.apk 电池显示插件
com.htc.rosiewidgets.note.apk 记事本插件
com.htc.rosiewidgets.quickrecord.apk 快速记事
com.htc.rosiewidgets.sandtimer.apk 沙漏
com.htc.rosiewidgets.task.apk 未知插件,进程管理
com.htc.rosiewidgets.tipcalculator.apk 小费计算器
com.htc.rosiewidgets.todayinhistory.apk 历史上的今天
com.htc.rosiewidgets.translator.apk 翻译
com.htc.rosiewidgets.wordoftheday.apk 每日一词(不学英语的没鸟用)
com.htc.WeatherWidget.apk 天气插件
ContactsProvider.apk 未知(可能跟同步联系人相关,建议别删)
CustomizationSettingsProvider.apk 自定义设置服务
CustomizationSetup.apk 自定义设置
DCSImpl.apk 集散控制系统服务
DCSUtility.apk 集散控制系统公共程序组件
DebugTool.apk 调试工具(估计可删)
DefaultContainerService.apk apk安装服务(别删)
DownloadProvider.apk 下载管理器(别删)
DrmProvider.apk DRM数字版权管理(我没删)
Facebook.apk Facebook(国内连不上,没啥用)
FieldTest.apk 测试程序(别删,删了没信号)
FilePicker.apk 文件定位(我没删)
Flashlight.apk 手电筒(我没删)
Flickr.apk Flickr应用(国内连不上,没啥用)
GenieWidget.apk 天气与新闻(自启动,自上网,重点删除对象)
Gmail.apk Gmail(google的东西通常都会自启动,建议删除)
GoogleCalendarSyncAdapter.apk 谷歌日历同步适配器(我要用日历,没删)
GoogleContactsSyncAdapter.apk 谷歌联系人同步适配器(担心他自上网,我删了)
GoogleFeedback.apk 谷歌反馈(反馈啥,直接干掉)
GooglePartnerSetup.apk Google助手(直接干掉)
GoogleBackupTransport.apk 谷歌备份传输(我相信没大用)
GoogleQuickSearchBox.apk 谷歌搜索(删了影响到桌面的搜索插件,自启动,干掉他)
GoogleServicesFramework.apk 谷歌同步支持服务框架(删了不能同步联系人,不能登录google,我留着呢)
HTC_IME.apk 输入法
HtcAddProgramWidget.apk 向桌面添加程序的小插件(留着,删了你会后悔的)
HTCAlbum.apk HTC相册(挺好用的,前提是你屏蔽掉非照片文件夹,附件里有)
htcbookmarkwidget.apk HTC书签小插件(干沉了)
HtcCalculatorWidget.apk 计算机小工具(一个插件占那么大屏幕,干掉)
htccalendarwidgets.apk HTC日历小插件(我留下了)
HTCCamera.apk 照相机(没人想把它删了吧)
HtcClockWidget.apk 闹钟小插件
HtcContacts.apk 联系人
htccontactwidgets.apk HTC联系人小插件(我觉得没用)
HtcCopyright.apk HTC版权
HtcDialer.apk 拨号(当游戏机玩的可删)
HtcFacebook.apk Facebook(干掉)
HtcFMRadio.apk 收音机
HtcFootprints.apk HTC足迹(增加耗电,干掉)
HtcFootprintsWidget.apk HTC足迹小插件(干掉)
HtcLocationPicker.apk 位置(就是设置里用来设置是否可以使用无线网络来确定位置的功能,保留)
HtcLocationService.apk 定位服务(留着)
HtcLockScreen.apk 锁屏文件
mailwidgets.apk HTC Mail小插件(我干掉了)
HtcMessageUploader.apk Message Uploader(未知,我留着)
htcmsgwidgets.apk HTC信息小插件
HtcMusic.apk 音乐
HtcPhotoWidget.apk HTC照片小插件
HtcProfilesWidget.apk 选择声音或震动小插件(挺有用)
HtcRingtoneTrimmer.apk 铃声剪辑(无视,删了)
HtcRingtoneWidget.apk 选择铃声的小插件(别删,删了设置里没法该铃声)
HtcSettingsProvider.apk HTC设置
htcsettingwidgets.apk HTC设置小插件,WIFI、移动网络、GPS、飞行模式、蓝牙的开关(好用)
HTCSetupWizard.apk HTC安装向导(删了会影响重新安装,我删了)
HtcSoundRecorder.apk 录音(删了)
HtcStreamPlayer.apk 流媒体播放器(删了,用rockplayer)
HtcSyncwidget.apk HTC同步小插件(删了)
HtcWeatherWall**.apk HTC天气壁纸(删了)
HTMLViewer.apk HTML查看器(别删)
install_flash_player.apk flash插件(你想看优酷吗)
LiveWall**s.apk 动态壁纸(浪费电,干掉)
LiveWall**sPicker.apk 动态壁纸选择器(留着吧,万一哪天想用了)
MagicSmokeWall**s.apk 魔法壁纸(删了)
Mail.apk Mail应用(没邮件,删了)
MarketUpdater.apk 市场更新(不用市场的可删)
MediaProvider.apk 媒体数据存储服务(会自启动,但删了不知有什么后果,我没删)
MediaUploader.apk Google媒体数据上传服务(自启动,不知什么用,我没删)
Mms.apk 信息(我删了,我用的超级短信)
Mode10Wall**s.apk 10月份墙纸(留着吧)
NetworkLocation.apk 谷歌网络定位服务(没敢删)
NewsReader.apk 新闻(删了)
PackageInstaller.apk APK安装程序(别删)
PCSCII.apk PC同步(貌似是)
PDFViewer.apk PDF
Phone.apk 电话(别删,删了直接崩溃)
PicoTts.apk 文字语音转换引擎(设置-语音输入与输出中)(我删了)
PluginManager.apk Sense插件管理
QxdmLog.apk 貌似是电话相关的
restartapp.apk Restart应用(不知有啥用)(留着吧)
Rosie.apk 桌面的主程序
RSS.apk 新闻(删了)
Settings.apk 设置
SettingsProvider.apk 设置服务(别删)
SetupWizard.apk 设置向导(切莫删除,删了91连不上,而且必须要重刷才行!!~~~血的教训啊~~~~)
SocialNetworkProvider.apk (社交网络)就是Facebook、Flickr的程序(干沉)
Stk.apk 手机卡服务(删了开机报错)
Talk.apk GTalk
teeter.apk 平衡球游戏
TelephonyProvider.apk 电话组件
TtsService.apk 文本到语音服务(我删了)
TransferData.apk 传输数据,可以将其他手机的联系人等信息通过蓝牙传输过来
Updater.apk 程序更新器(会自启动,但没敢删)
UpgradeSetup.apk 更新程序
UploadProvider.apk HTC媒体上传器(没敢删)
UserDictionaryProvider.apk 用户字典(功能未知,自己考虑要不要删)
Vending.apk 电子市场(咱用黑市,嘿嘿)
VisualizationWall**s.apk 自带墙纸
VoiceSearch.apk 语音搜索(我删了)
VpnServices.apk vpn代理(别删)
Weather.apk 天气组件
WeatherAgentService.apk 天气组件
WeatherProvider.apk 天气组件
WeatherSyncProvider.apk 天气组件
WidgetDownloadManager.apk 任务栏提示图标
WifiRouter.apk wifi路由
WorldClock.apk 世界时钟
customsize文件夹介绍
Default.xml配置文件包括默认语言.默认输入法。开机画面/声音位置。关机画面位置等
Resource文件夹包含背景图、开关机动画.开机声音
cid与mns文件夹包含的都是配置文件
etc文件夹
etc文件夹包含的是驱动以及配置文件
host文件功能和电脑的host文件效果一样。可以通过这个屏蔽广告
apns-conf.xml为运营商信息彩信以及apn设置
其他的文件通过文件名对号入座即可
Fonts文件夹
字体文件夹。我们改该文件可以换字体
Framework文件夹
Framework-res.apk该文件是我们主要的美化文件。数字电量/信号图标等
com.htc.resources.apk该文件是系统图标资源.美化时替换即可
其他的jar文件暂时不是我们需要修改的东西。暂时省略了
Lib文件夹
Lib文件夹下的都是驱动文件
例如libcamera.so便是相机的驱动
Media文件夹
媒体文件.打开可以看到部分铃声以及图片.Sense3.0的天气动画文件都在这里
Usr文件夹
keylayout文件夹的vivo-keypad.kl是默认的键盘配置文件.修改该文件可以改变按键功能。其他文件按图索骥即可.大体的意思都是一样的
xbin文件夹
支持库文件.通常有busybox.sqlite.su等。因为虽然Android是Linux小型化的。但是部分命令还是不支持。需要支持库来扩展
Bulid.prop文件
该文件…可以修改默认时区。版本等。
第一课非常的简短.根据这个教程。大家可以初步认识我们的Android系统.到这里我们基本要求掌握的就是system文件夹下各个文件夹的基本用途。
谷歌 Fuchsia OS 进入开发者测试阶段,它真的会代替安卓吗?
作者 | Evana Margain
译者 | 明明如月
整理 | 夕颜,责编 | 唐小引
出品 | CSDN(ID:CSDNnews)
在过去的 8 到 10 年里,移动市场一直被两个我们都熟悉的系统所主导: 安卓和 iOS。我们总是认为现在了解的事物永远不会结束,但是随着科技的发展,谷歌已经不再这么认为。自 2016 年 8 月以来,谷歌一直致力于研发全新操作系统 Fuchsia。在预想中,这个“通用”的操作系统能够无缝运行于所有平台,如智能设备、平板电脑和智能手机。一些人认为它可能是 Android 的终结者。
在这篇文章中,我们来深入了解一下这个被称为“Fuchsia”的操作系统,并讨论它是否真的能替代安卓。
预计已进入开发者试用阶段
据外媒的最新消息,谷歌新操作系统Fuchsia OS的开发已经接近尾声,进入开发者亲自试用的阶段。
据说,谷歌在软件开发周期中会进行多轮测试,在让普通用户测试之前,通常会有一个开发人员亲自上阵的“狗粮”测试期,也就是让开发者亲自安装使用操作系统,通过亲身感受找到系统的优点和不足。“狗粮”测试很可能是谷歌将开发产品推向公众之前的最后一次全公司范围的测试阶段。
除了阿尔法和贝塔等正常公共测试,谷歌还会有很多内部测试,如小范围的“鱼食”测试,以及在“鱼食”和“狗粮”之间的“团队食品”测试阶段,等等,过程繁复严苛。
这次外媒之所以声称Fuchsia OS已接近尾声,就是因为他们发现在过去的一年里,有迹象表明,至少Fuchsia OS下一代操作系统的部分功能已经经历了鱼食阶段和团队食品阶段的开发测试,而在最近Fuchsia OS的一些代码变化中,出现了“为狗粮发行版本”准备的字样,这代表着一些开发者可能已经启动了“狗粮测试”。
如果最终的内部测试进展顺利,谷歌完全有可能提前把Fuchsia OS测试版提交给第三方开发者,进入“开发者测试阶段”。
虽然近期由于新冠病毒的全球蔓延,MWC、Facebook F8开发者大会相继取消,但是谷歌却暂时没有取消2020年度I/O大会的迹象。不久前,谷歌还正式放了I/O开发者大会的注册通道,入场券的价格为1150美元,学术类通行证售价375美元。
然而,特殊情况下一切皆有变数,2020年度I/O大会能否顺利举行,以及是否会在大会上公布Fuchsia OS开发测试版,还是要打上大大的问号。
Fuchsia OS项目的起源、发展
自从4年前,也就是2016年8月15日公布初始版本之前,Fuchsia OS就一直笼罩在一层神秘的色彩之下,直到2019年Fuchsia OS的开发者网站Fuchsia.dev上线,Fuchsia OS的神秘面纱才被彻底揭开。
为了更好地了解它,下面我们来简单回顾下Fuchsia OS的起源与发展历程的时间轴:
2016年8月,媒体报道了发布于GitHub上的神秘源码,显示Google正在开发一个名为“Fuchsia”的新操作系统,虽然官方没有正式公布,其源码检查显示其能够跨平台运行,包括“汽车的娱乐媒体系统和嵌入式设备,如红绿灯、数字手表、智能手机、平板电脑与个人电脑”。
2017年5月,外媒首次发布关于Fuchsia的新用户界面的文章,此后多家媒体提到“Fuchsia项目”和Android似乎有密切联系,有人猜测Fuchsia可能是“重做”或替换Android以在某种程度上修复该平台上的问题。
2017年11月,对Swift语言提供了初始支持。
2018年1月3日,Google允许开发者以Google Pixelbook为目标设备,下载Fuchsia OS进行开发与测试。
2018年4月,Fuchsia的源代码出现在AOSP的ART当中,疑似是AOSP已经开始将ART移植至Fuchsia上,但源代码仍处于被注释处理的状态。
2019年5月13日,在息壤开源镜像站和重庆大学镜像站 weerac 的努力下,Fuchsia OS 源码国内镜像正式上线。国内开发者们可以通过 git 方式获得主 repo 核心代码;以及从镜像站获取完整代码,包括第三方代码,以及单独的 tar 包,Fuchsia 镜像同时提供每日当天打包的源码包。
图源:Fuchsia中文社区
2019年6月28日,Fuchsia OS的开发者网站Fuchsia.dev上线。
2020年2月,Fuchsia OS预计已进入开发者试用阶段。
Fuchsia OS和之前的操作系统有何不同?
在谷歌 Fuchsia 开发者入门指南开头, Fuchsia这样描述这个项目: “ Pink(粉色) + Purple(紫色) == Fuchsia (Fuchsia,一种新的操作系统)”。
Fuchsia OS开发者入门指南:
https://fuchsia.dev/fuchsia-src/getting_started。关于入门指南,参考下文详细解释。
乍一看,这个短语只是颜色的定义以及这个产品是一个操作系统的明确声明。但事实并非如此。Pink 是指苹果第一个面向对象的微内核操作系统,而 Purple 是苹果 iPhone 的第一个代号。我的第一反应是... 为啥和苹果纠缠不清?
微内核操作系统
首先需要注意的是,该系统与基于Linux的Android或Chrome操作系统不同,Fuchsia源于一种名为“Zircon”操作系统微内核,是支持Fuchsia的核心平台。Fuchsia还提醒开发者,Fuchsia的构建过程将考虑进Zircon的副作用,因此,为了顺利单独使用Zircon,需要按照Zircon指南文档的指导进行:https://fuchsia.dev/fuchsia-src/development/kernel/getting_started
内核是所有计算机的核心,是控制一切的基本程序。这里的“微”指的是非常小规模的东西。作为微内核,Fuchsia 可以在任何设备上运行,包括传统的电脑、手机和物联网设备(如你的冰箱或微波炉)。
Fuchsia支持跨设备使用
考虑到上面提到的:Fuchsia 是一个微内核操作系统,我们可以设想谷歌设计它的目的是让不同的设备使用相同操作系统。也许我们现在很少注意到,在你的手机和电脑上运行的操作系统其实是不同的。即使你有一台 Mac 和一台 iPhone,用户界面可能看起来很相似,但核心也是不同的。
那么问题来了: 跨设备使用相同的操作系统有什么好处? 答案就是如果不同设备使用的操作系统相同,你只需要开发一个应用程序即可实现跨设备使用,唯一需要改变的是用户界面。这还需要考虑其他问题。例如,输入设备是不一样的,手机没有物理键盘,电脑不总是支持触摸手势,一些电脑可能不含 GPS 芯片或加速器等。这些都是谷歌需要考虑的因素。
支持多种编程语言
特别有意思的是你可以用 Xcode 11 构建 Fuchsia 。Fuchsia可以支持多种语言的应用程序,包括README 、 C/C++ 、 FIDL 、Go、Rust、Python、Flutter、Java、Swift、Dart 。到目前为止,移动平台只支持一种本地语言,但未来可能支持多种编程语言。2020年就可以用了
目前 Fuchsia 已经可以在一些设备上运行,比如Acer Switch 12、Intel NUC、Google Pixelbook。目前只能参考指南的介绍自行构建此系统,市面上还没有使用 Fuchsia 的产品。
动手构建一个Fuchsia系统尝鲜吧!
既然市面上还没有使用Fuchsia的产品,先动手尝下鲜也是极好的。
从Fuchsia开发者网站上给出的文档中,我们至少可以得到以下几个信息:
1. 这个构建过程叫做 pave (铺路)。
2. 你需要一台主机和一台目标设备。换句话说,你需要在计算机上构建它,然后将其传输到目标设备上。
3. 你可以在 Linux 和 Mac OS X 中使用它。
具体的构建过程是怎样的呢?我们慢慢来看。
前提
准备构建环境
Debian
1sudo apt-get install build-essential curl git python unzip
macOS
安装命令行工具:
1xcode-select --install
除了命令行工具外,还需要安装最新版本的Xcode。
获得来源
获得Fuchsia来源,需要根据指南下载,这个过程耗时将近60分钟,可按照文档操作:https://fuchsia.dev/fuchsia-src/development/source_code
构建Fuchsia
如果你在获取源代码的过程中将.jiri_root / bin添加到了路径中,则fx命令应该已经在路径中了。如果没有,该命令也可以作为scripts / fx使用。
1fx set core.x64 --with //bundles:kitchen_sink2fx build
fx set命令可配置构建内容,并在默认输出目录out / default和out / default.zircon中生成构建规则和元数据。参数core.x64是指产品和电路板的定义,描述了你的Fuchsia设备已构建并可用的软件包。
运行Fuchsia的设备可以通过网络临时下载和安装软件包,在开发环境中,你的开发工作站就是这些临时软件包的来源。电路板和产品定义包含一组软件包,但是如果你需要添加其他软件包,请使用--with标签。此示例包括kitchen_sink,这个英文习语的意思是“几乎所有内容”。当你更加专注于开发时,你可能会使用更具体的--with选项,以减少构建时间。
fx build命令运行构建,将源代码转换为程序包和其他构建工件。如果你修改源代码,则可以通过单独重新运行fx build命令来进行增量构建。fx -i build启动监视程序,并在文件更改时自动进行构建。
有关更多详细信息,请参见基础构建系统指南:https://fuchsia.dev/fuchsia-src/concepts/build_system
其他选择:使用ccache加速构建
ccache通过缓存以前构建的工件来加速构建。如果设置了CCACHE_DIR环境变量并引用了存在的目录,则会自动启用ccache。
要覆盖默认行为,请将标签传递给fx set:
1--ccache # force use of ccache even if goma is available2--no-ccache # disable use of ccache
Boot Fuchsia
从硬件安装和引导
要想Fuchsia在硬件上运行,需要用到paver,具体操作参见https://fuchsia.dev/fuchsia-src/development/hardware/paving
从QEMU引导
如果没有支持的硬件,则可以使用QEMU在仿真下运行Fuchsia。Fuchsia在prebuilt / third_party / qemu下包含QEMU的预构建二进制文件。
fx emu命令将使用本地构建的磁盘映像在QEMU中启动Fuchsia:
1fx emu
fx emu有各种标志来控制仿真器配置:
-N启用联网(请参见下文)。
--headless禁用图形(见下文)。
-c将其他参数传递给内核。
使用fx emu -h查看所有可用选项。
注意:在运行任何命令之前,你需要按照Explore Fuchsia 部分中的说明进行操作。启用网络
为了使临时软件在仿真器中运行,必须配置IPv6网络。
在macOS上:安装“ http://tuntaposx.sourceforge.net/download.xhtml”。
在Linux上:运行sudo ip tuntap add dev qemu模式,点击用户$ USER && sudo ip link set qemu up
现在,仿真器可以在启用网络的情况下运行:
1fx mu -N
以上内容足以使临时软件(由fx serve提供服务)能够正常运行,其中包括许多工具,例如uname和fortune(如果已构建)。
另外,希望从仿真器访问Internet的用户还需要在仿真器TAP接口上配置某种方式的IP转发和IPv4支持。
Explore Fuchsia
在单独的shell中,启动开发更新服务器(如果尚未运行):
1fx serve
用网络启动Fuchsia。可以通过-N标志在QEMU中完成此操作,也可以在已安装的硬件上完成。当Fuchsia启动并显示“ $” shell提示符后,就可以运行程序了!
例如,要获得deep wisdom,运行:
1fortune
要关闭或重新启动Fuchsia,使用dm命令:
1dm shutdown2dm reboot
更改一些来源
Fuchsia系统上几乎所有的东西都存储在Fuchsia的包装中。通常的开发工作流程包括重建Fuchsia软件包并将其推送到开发设备或QEMU虚拟设备。
在examples / rolldice / src / main.rs中更改rolldice二进制文件。
重新构建rolldice软件包并将其推入运行中的Fuchsia设备,方法是:
1fx build-push rolldice
在Fuchsia设备的shell提示符下,使用以下命令运行更新的rolldice组件:
1rolldice
选择一个标志
启用了图形的引导后,Fuchsia显示多个选项卡。当前选择的选项卡在屏幕顶部以黄色突出显示。
以下键盘快捷键可以浏览终端:
Alt + Tab在选项卡之间切换。
Alt + F {1,2,...}直接切换到选项卡。
Tab 0是控制台,该控制台显示引导和组件日志。
Tab 1、2和3包含shell。
Tab 4和更多包含你已启动的组件。
Alt +上/下按行上下滚动。
Shift + PgUp / PgDown上下滚动半页。
Ctrl + Alt + Delete重新启动。
注意:要选择Tab,你可能需要输入“控制台模式”。有关详细信息,请参见下一部分。启动图形组件 警告:QEMU不支持Vulkan,因此无法运行我们的图形堆栈。本节中的命令不适用于QEMU。
Fuchsia中的大多数图形组件都使用Scenic系统合成器。你可以启动通常在/ system / apps中的此类组件,如下所示:
1present_view fuchsia-pkg://fuchsia.com/spinning_square_view#meta/spinning_square_view.cmx
当你启动使用Scenic的东西,使用硬件加速的图形或构建默认程序包(将引导至Fuchsia System UI)时,Fuchsia将进入“图形模式”,该模式将不显示任何文本样式。为了使用文本样式,你需要按Alt-Escape进入“控制台模式”。在控制台模式下,Alt-Tab将可以进行上文所述才做,再次按Alt-Escape可返回图形样式。
运行测试
和其他组件一样,已编译的测试二进制文件也缓存在pkgfs中,并由URI引用。你可以在终端中调用来运行测试。例如:
1run fuchsia-pkg://fuchsia.com/ledger_tests#meta/ledger_unittests.cmx
如果要让Fuchsia保持运行状态,然后重新编译并重新运行测试,就在一个终端中启用联网的情况下运行Fuchsia,然后在另一终端中运行:
1fx test <test name> [<test args>]
如果要进一步操作,可以参考以下链接,篇幅所限,不能一一详解:
https://fuchsia.dev/fuchsia-src/development
真的能完全代替安卓/Chrome OS吗?
本文是对谷歌 Fuchsia 的一个系统性的总结,谷歌目前还尚未做出关于这个系统的任何回应和评价。
自Fuchsia诞生之初,围绕它是否会成为改变操作系统格局的深水炸弹之争就一直存在。据说,Fuchsia开发团队里有35名,约1/4的开发人员也是安卓的开发人员。另据传闻,Google的设计副总裁 Matias Duarte (也是 Material Design 的创始人)可能也参与到了Fuchsia项目,与安卓千丝万缕的关系,让Fuchsia与安卓之间的关系更是好奇。
一些专家认为,手握“跨平台”优势的Fuchsia将是操作系统领域下一个可以取代安卓操作系统的“大杀器”,谷歌不会放弃这个机会,而有人认为技术变化得如此之快,再加上华为鸿蒙OS的推出赶上日程,有媒体猜测,鸿蒙可能将打通手机、电脑、平板、电视、汽车和智能穿戴等多种设备的统一操作系统,并兼容全部安卓应用和所有Web应用。届时,在操作系统领域,Fuchsia还将面临更多竞争,到底谁将替代安卓/Chrome OS,是否足够强大到能够替代,还有待时间的验证。
按照这份入门指南,你现在应该可以上手自行创建一个Fuchsia系统了,试用的感受如何?和安卓Chrome OS相比,它用起来更简单方便吗?欢迎留言告诉我你的想法。
参考链接:
https://medium.com/better-programming/google-fuchsia-androids-replacement-code-in-mobile-5ebafe8eb11a
本文为CSDN编译文章,转载请注明出处。
相关问答
监控系统专用硬盘数据怎么读取?-ZOL问答2、Explore2fs体积小,无需安装,仅有一个exe文件,下载后即可使用.只能读取,不能写入.3、Ext2fsd安装之后和Ext2IFS类似,能够给Linux分区加上盘符.不过不兼容.....
怎么在windows系统下读取linux硬盘数据?-ZOL问答2、Explore2fs体积小,无需安装,仅有一个exe文件,下载后即可使用.只能读取,不能写入.3、Ext2fsd安装之后和Ext2IFS类似,能够给Linux分区加上盘符.不过不兼容.....
重装系统的时候出现了geub是什么意思?-ZOL问答Partitionnum:0,Filesystemtypeisext2fs,partitiontype0x83Partitionnum:1,Filesystemtypeun...
如何将被代替的txt找回用"替换"功能一次删除全文的空行:点“编辑”->“替换”,在“查找内容”框中输入^P^P,在“替换为”框中输入^P,点“全部替换”。如果有连续的空行,...
卸载驱动,只做ghost,不做封装为什么在别的机子不能安装?[回答]1、准备所需工具软件※S&R&S_V9.5.1118智能系统封装工具※DEPLOY.CAB(在系统安装光盘:/SUPPORT/TOOLS目录下自带)※Ghost_v8.0...
FLASH软件无法安装,一直出现一个对话框:部件hmButton.ocx或其...是否“IEXPLORE.EXE"进程在运行!如果是!请注意右键结束进程!--------------...再开始——运行——controluserpasswords2——在用户名那...