Android 初始化语言(Android init Language翻译)!

合集下载

Android的初始化语言脚本init.rc解析

Android的初始化语言脚本init.rc解析

Android的初始化语言脚本init.rc解析Android的初始化语言脚本init.rc解析Android init.rc (Android init language)Android初始化语言由四大类声明组成:行为类(Actions),命令类(Commands),服务类(Services),选项类(Options).* 初始化语言以行为单位,由以空格间隔的语言符号组成。

C风格的反斜杠转义符可以用来插入空白到语言符号。

双引号也可以用来防止文本被空格分成多个语言符号。

当反斜杠在行末时,作为折行符。

* 以#开始(前面允许有空格)的行为注释行。

* Actions和Services隐含声明一个新的段落。

所有该段落下Commands或Options的声明属于该段落。

第一段落前的Commands或Options被忽略。

* Actions和Services拥有独一无二的命名。

在它们之后声明相同命名的类将被当作错误并忽略。

Actions-------Actions是一系列命令的命名。

Actions拥有一个触发器(trigger)用来决定action何时执行。

当一个action在符合触发条件被执行时,如果它还没被加入到待执行队列中的话,则加入到队列最后。

队列中的action依次执行,action中的命令也依次执行。

Init在执行命令的中间处理其它活动(设备创建/销毁,property设置,进程重启)。

Actions表现形式为:onServices--------Services是由init启动,在它们退出时重启(可选)。

Service表现形式为:service [ ]*...Options-------Options是Services的修饰,它们影响init何时、如何运行service.critical这是一个设备关键服务(device-critical service) .如果它在4分钟内退出超过4次,设备将重启并进入恢复模式。

android的init.rc文件的语法

android的init.rc文件的语法

android的init.rc文件的语法Android初始化脚本语言包含四种类型的语句:* 动作(Actions)* 指令(Commands)* 服务(Services)* 选项(Options)该语言的语法包括下列约定:* 所有类型的语句都是基于行(line-oriented)的,一个语句包含若干个tokens,token 之间通过空格字符分隔. 如果一个token中需要包含空格字符,则需要通过C语言风格的反斜线('/')来转义,或者使用双引号把整个token引起来。

反斜线还可以出现在一行的末尾,表示下一行的内容仍然属于当前语句。

* 以'#'开始的行是注释行。

* 动作(Actions)和服务(Services)语句隐含表示一个新的段落(section)的开始。

所有的指令(commands)和选项(options)归属于上方最近的一个段落。

在第一个段落之前的指令(commands)和选项(options)是无效的。

* 动作(Actions)和服务(Services)拥有唯一性的名字。

如果出现重名,那么后出现的定义将被作为错误忽略掉。

动作(Actions)动作(Actions)是一个有名字的指令(commands)序列。

每个动作(Actions)都定义一个触发条件(trigger),用于指示什么时候执行这个动作。

当与动作的触发器匹配的事件发生时,该动作将被添加到一个即将被执行的队列的队尾(除非它已经在队列中)。

队列中的每一个动作被依次取出执行,动作中的每一个指令也将依次执行。

初始化程序(Init)在执行一个动作的各项指令的期间,还需要处理其它操作(比如,设备创建/销毁,属性设置,进程重启)。

一个动作定义的形式如下:on <trigger><command><command><command>服务(Services)服务是初始化程序需要启动的一些程序,初始化程序还有可能会在这些程序退出之后重启它们。

安卓内置程序中英对照

安卓内置程序中英对照

首先需要root文件管理器,其次手机需要取得root权限,有root权限后,直接用文件管理进入/system /app 里删除对应的.apk。

*Accountprovider账号管理器ApkManager.apk APK安装器(即N多安装器)advancedsettings.apk高级设置AlarmClock闹钟AndroidSyncService系统同步服务AndroidUI索尼爱立信X10UI界面程序appinstaller.apk app安装器*ApplicationsProvider程序管理器AutoSettingDispatcher自动设置修补bootinfo启动信息Bluetooth.apk蓝牙(删了就没有蓝牙了)Browser自带浏览器Bugreport.apk Bug报告btoppservice蓝牙设置服务Calculator系统自带计算器Calendar系统自带日历程序CalendarProvider系统自带日历管理器*Camera系统自带相机CapabilitySetupReceiver接收器安装能力*CertInstaller.apk证书服务CdfInfoAccessor CDF信息访问器*Contacts联系人储存CredMgrService CredMgr服务*DefaultContainerService.apk默认通讯录服务DeskClock.apk自带闹钟(用第三方闹钟的可删)DigitalClock数字时钟*DownloadProvider下载管理器*DrmProvider DRM信息管理器SPManager.apk DSP音频管理(兴哥集成在设置里面,我不太使用这个,删了EMAIL伊妹儿。

Emeual(干什么用的我毫不知情)EnhancedGooglesearchProvider增强谷歌搜索管理器Fcebook非死不可FaceRecognition脸部识别程序(MS里面看照片的时候可以关联联系人)filemanager.apk文件管理FileCopier文件复制器Fota FOTA解决方案Generic-app-Installer全球版的APK安装器GlobalSearch全球搜索Gmail谷歌MAILGmailProvider GMAIL管理器Gallery3D.apk 3D浏览器(嫌弃它速度慢的,可删)GenieWidget.apk天气与新闻(我自己不用他看新闻,删了)GoogleApps谷歌程序googlebackuptransport.apkgooglecheckin.apkgooglecheckinhelper.apkGoogleFeedback.apk***(据说删除后开机会提示googlefeedback.apk,不过我删了没什么副作用)googlepartnersrtup.apk Google助手(删了没感觉有特殊)GoogleCalendarSyncAdapter.apk存储日历信息(删了没感觉有特殊)GoogleContactsSyncAdapter.apk存储联系人信息(怕影响到联系人未删,但兴哥精简版已经删了)GoogleCheckin谷歌签入程序GoogleContactsProvider谷歌联系人管理器GooglePartnerSetup谷歌好友设置GoogleSearch谷歌搜索GoogleQuickSearchBox.apk谷歌搜索(删了影响到桌面的搜索插件)GoogleServicesFramework.apk同步支持服务(删了不能同步联系人,不能登录google)GoogleSettingProvider谷歌设置管理器GoogleSubscribedFeedsProvider谷歌同步管理器GooglePinyinIME.apk Google拼音(用其他输入法的可删)gtalkservice GTALK服务HTMLViewer HTM查看器hidialer.apk 智能拨号himarket.apk 安卓市场kickback.apk辅助功能LearningClientLauncher2.apk 2.2原生桌面(用ADW和PRO的可删,删了以后第三方桌面要在开机以后从电脑安装,91,豌豆助手都可)LiveWallpapersPicker.apk 动态壁纸(可删,反正G2跑起来不怎么样)im.apk即使通讯组件包含MSN、yahoo通implugin.apkImProvider gtalk管理器Launcher主页面程序MAPS谷歌地图MarketUpdater电子市场更新程序*MediaProvider媒体管理器Mediascape大名鼎鼎的MediascapeMediascapePluginManager Media插件管理器MediaUploader媒体更新器Metadatacleanup元数据清除器MMS短信和彩信程序Moixer 烦人的moixer程序NUSIC原生音乐播放器nDuoaDialer.apk N多拨号(可删,自带的就可以了)nDuoaMarket.apk N多市场(可删,电子市场对我够了)nDuoaSettings.apk N多设置组件1(最好不要删,很不错的高级设置,兴哥集成在了设置里面)nDuoaSettingsAddon.apk N多设置组件2(最好不要删,很不错的高级设置)nDuoaSettingsHelper.apk N多设置组件3(最好不要删,很不错的高级设置)NetworkLocation纵横程序,显示地点officesuite office套件,可看PDFOneTimeInitializer.apk***(不明物体,删了没什么副作用)*PackgeInstaller APK安装器PcCompanionInstaller PcCompanion的安装程序,在设置>应用程序>里面就有勾选的选项*Phone电话程序Phonebook电话簿PhoneGuard.apk拨号卫士(可删,类似来电通等的)PicoTts语音程序Playnowarena PLAY NOW程序Playnowarena_updater PLAY NOW的更新程序PNPWizard PNP设置向导PrisonBreak.apk越狱(翻qiang用的)Protips.apk***(不明物体,删了无副作用)*QuickMgr.apk一键设置(长按menu的后弹出的那个,不要删,删了以后长安menu会FC)Readsdcard TF卡的系统读取程序se-support-rachael索尼爱立信的帮助程序SemcCameraApplication SE照相机增强程序(给自带的照相机加入各种模式)SemcIme系统自带输入法SemcSetupWiazard索尼爱立信设置向导SEMCTouchPalChinese索尼爱立信中文触摸输入法SEMCTouchPalKrea索尼爱立信韩语触摸输入法ServiceMenu服务菜单*Setting设置程序*SettingProvider设置管理器(储存手机设置里的一些设定)*SetupWizard第一次开机的开机向导SnsContactImageCacheProvider SNS联系人头像缓存管理器SMSPopup.apk短信泡泡(就是短信来时弹出的那个,其实就是个弹出框架,可用chomp 替换)soundback.apk辅助功能(可删)SoundRecorder录音机STK SIM卡工具Street谷歌地图的街景模式*superuser.apk超级用户systemupdater.apk系统升级TALK gtalk主体程序(可删,删了没有电子市场上)*TelephonyProvider电话管理器Timescape大名鼎鼎的TimesacpeTimescapePluginManager Timescape插件管理器TimescapeProivder Timescape管理器TimesacpeTheme****各种颜色的Timescape主题TrackID有名的TrackIDTerm.apk超级终端(可删,不过不建议,可以用来刷recovery)TtsService语音输入服务Updater.apk在线升级(可删)UserDictionaryProvider用户字典管理器(就是系统自带输入法的用户自定义词组管理器)Vending电子市场VoiceDialer语音拨号程序VoiceSearch语音搜索程序VpnService虚拟专用网服务WebMediaProvider网页媒体管理器Wiper擦除数据程序(恢复出厂设置用的)YouTube大名鼎鼎的Youtube客户端删除不必要的程序,可以增加手机内存顶帖子是为了让更多的朋友看到,好东西要分享!谢谢!注意:带*的千万不要删!!!切记!!!。

android手机操作系统中英文对照

android手机操作系统中英文对照

android⼿机操作系统中英⽂对照general 常规silent mode 静⾳模式 (silence all sounds except media & alarms 对所有⾮多媒体声⾳进⾏静⾳处理)vibrate 震动(always 始终 / never ⼀律不 / only in silent mode 仅在静⾳模式下来电震动 / only whe n not in silent mode 仅在⾮静⾳模式下来电震动)volume ⾳量 (use incoming call volume for notifications 将来电⾳量⽤作通知⾳量)incoming calls 来电phone ringtone ⼿机铃声notification 通知notification ringtone 通知铃声feedback 反馈audible touch tones 按键操作⾳(play tones when using dial pad 使⽤拨号键盘时播放按键⾳效) audible selection 选择操作⾳(play sound when making screen selcction 进⾏屏幕选择时播放⾳效)sereen lock sounds 屏幕锁定操作⾳(play sound when locking and unlocking the screen 锁定和解锁屏幕时播放声⾳)haptic feedback 触感 (vibrate when pressing soft keys and on certain UI interactions 按软键以及进⾏某些UI交互时震动)display 显⽰brightness 亮度(automatic brightness ⾃动调节亮度)auto-rotate screen ⾃动旋转屏幕animation 动画(no window animations are shown 不显⽰窗⼝动画 - (no animations ⽆动画 / some animationgs 部分动画 / all animations 所有动画))screen timeout 屏幕超时(adjust the delay before the screen automatically turns off 调整屏幕⾃动锁定前的延时)number of home panels 屏幕个数 (adjust the number of panels on home screen 调整主屏的屏幕个数)location & security 位置和安全my location 我的位置use wireless network 使⽤⽆线⽹络(location determined by Wi-Fi and/or mobile networks 通过W i-Fi和/或移动⽹络确定的位置)use GPS satellites 使⽤GPS卫星(locate to street-level(requires more battery plus view of sky) 定位时,精确度设定为街道级别(取消选中可节约电量))phone lock ⼿机锁定phone lock settings ⼿机锁定设置phone lock type ⼿机锁定类型(phone lock is off 关闭⼿机锁定功能(none ⽆ / password 密码 / p attern 图案))change unlock password timeout 更改解锁密码超时时间use visible pattern 使⽤图案use tactile feedback 使⽤触感screen unlock 屏幕解锁set up screen lock 设置屏幕锁定(lock screen with a pattern,PIN,or password 使⽤图案、PIN或密码锁定屏幕)none ⽆(disable screen unlock security 停⽤屏幕锁定保护功能)pattern 图案(draw pattern to unlock screen 绘制图案给屏幕解锁)PIN (enter a number PIN to unlock screen 输⼊数字PIN给屏幕解锁)password 密码(enter a password to unlcok screen 输⼊密码给屏幕解锁)SIM card lock SIM卡锁定set up SIM card lock 设置SIM卡锁定lock SIM card 锁定SIM卡(require PIN to phone 需要输⼊PIN才能使⽤⼿机)change SIM PIN 更改SIM卡PINpassword 密码visible passwords 密码可见(show password as you type 输⼊密码时可见)device administration 设备管理select device admindtrators 学则设备管理器(add or remove device administrators 添加或删除设备管理器)(no available device administrators 没有可供显⽰的设备管理器)credential stronge 凭证存储use secure credentials 使⽤安全凭证(allow applications to access secure certificates and other credentials 允许应⽤程序访问安全凭证和其他凭证)install from SD card 从SD卡安装(install encrypted certificates from SD card 从SD卡安装加密的证书)(no certificate file found in the SD card 在SD卡上找不到证书⽂件)set password 设置密码(set or change the credential storage password 设置或更改凭证存储密码) (set a password for the credenntial storage(at least 8 characters) 设置凭证存储密码(⾄少8个字符) / n ew password 新密码 / confirm new password 确认新密码)clear storage 清楚存储(clear credential storage of all contents and reset its password 清楚所有内容的凭证存储并重置其密码)applications 应⽤程序unknown sources 未知来源(allow installation of non-Market applications 允许安装⾮电⼦市场提供的的应⽤程序)quick launch 快速启动(set keyboard shortcuts to launch applictions 设置快捷键启动程序)(no shortc ut 没有快捷键)manage applicatings 管理应⽤程序(manage and remove installed applications 管理和删除按章的应⽤程序)(sort by size 按⼤⼩排序)running services 正在运⾏的服务(view and control currently running services 查看和控制当前正在运⾏的服务)development 开发(set options for application development 设置应⽤程序开发选项)USB debugging USB调试(debug mode when USB is connected 连接USB后启⽤调试模式)stay awake 保持唤醒状态(screen will never sleep while charging 充电时屏幕不会休眠)allow mock locations 允许模拟地点(allow mock locations 允许模拟地点)accounts & sync 账户与同步 (add account 添加账户)general sync settings 常规同步设置background data 背景数据(applications can sync,send,and receive data at any time 应⽤程序随时可以同步、发送和接收数据)auto-sync ⾃动同步(applications sync data automatically 应⽤程序⾃动同步数据)manage accounts 管理账户(remove account 删除账户)data & synchronization 数据与同步sync contacts 同步联系⼈ (touch to sync now 触摸可⽴即同步)sync gmail 同步Gmailsync calendar 同步⽇历privacy 隐私权backup and restore 备份和还原back up my data 备份我的数据(back up my settings and other apppliction data 备份我的设置和其他应⽤程序数据)automatic restore ⾃动还原 (if I reinstall an application,restore backed up settings or other data 重新安装某个应⽤程序后,系统会还原已经备份的设置或其他数据)personal data 个⼈数据factory data reset 恢复出⼚设置(erases all data on phone 清除⼿机上的所有设置)SD card & phone storage SD卡和⼿机内存SD card SD卡total space 总容量available space 可⽤空间unmount/mount SD card 卸载/安装SD卡(unmount the SD card for safe removal 必须先卸载SD卡,才能将其安全移除)format SD card 格式化SD卡 (format(erase)the SD card 格式化(清除)SD卡)internal phone storage ⼿机内存available space 可⽤空间language & keyboard 语⾔和键盘select language 选择语⾔multi-touch keyboard 多点触摸键盘input languages 输⼊语⾔(slide finger on spacebar to change language 在空格键滑动⼿指可更改语⾔)on-screen keyboard 屏幕键盘show suggestions 显⽰建议(display corrections and completions while typing 输⼊时启⽤联想提⽰)auto-correct errors ⾃动纠错(spacebar and punctuation automatically insert highlighted wordFriday / Fri. 星期五Saturday / Sat. 星期六Sunday / Sun. 星期⽇。

bootimg的详细介绍&使用实例

bootimg的详细介绍&使用实例

文件系 /挂载点/

大小
描述
BOOT: /dev/mtdblock[?]
/
(RAM)
Raw
内核、内存盘和引导配置。
DATA:
/dev/mtdblock5
/data/ yaffs2
91904kb
用户、系统配置,软件配 置以及软件(没有 a2sd 的
话)
CACHE:
/dev/mtdblock4
/cache/ yaffs2
*/
boot 的 ramdisk 映像是一个最基础的小型文件系统,它包括了初始化系统所需要的全部核心文
件,例如:初始化 init 进程以及 init.rc(可以用于设置很多系统的参数)等文件。
以下是一个典型的 ramdisk 中包含的文件目录列表:
│ default.prop
│ init
│ init.goldfish.rc
** appended to the kernel commandline in the tags.
** 5. r0 = 0, r1 = MACHINE_TYPE, r2 = tags_addr
** 6. if second_size != 0: jump to second_addr
** else: jump to kernel_addr
│ default.prop
│ init
│ init.rc
│ initlogo.rle
//开机第二屏图片
│ ueventd.goldfish.rc
│ ueventd.rc
│ ueventd.swift.rc

├─data
├─dev
├─etc
│ recovery.fstab

Android开关机动画铃声播放原理

Android开关机动画铃声播放原理

Android开关机动画/铃音是如何播放的?1. 开关机动画的启动Android系统在init.rc中定义了很多Servic,具体定义格式可以参考《Android Platform Developer’s Guide》中的“Android Init Language”。

Init.rc中定义的Service将会被Init进程创建,其中已经定义的服务就包含了开机动画.每一项服务必须在/init.rc中定义.Android系统启动时,init守护进程将解析init.rc和启动属性服务,属性“ ctl.st art ”和“ ctl.stop ”是用来启动和停止服务的。

一旦收到设置“ ctrl.start ”属性的请求,属性服务将使用该属性值作为服务名找到该服务,启动该服务。

这项服务的启动结果将会放入“ init.svc.<服务名>“属性中。

客户端应用程序可以轮询那个属性值,以确定结果。

service bootanim /system/bin/bootanimationuser graphicsgroup graphicsdisabledoneshot//定义了一个bootanim的服务,对应执行/system/bin/bootanimation//disabled 表示init进程创建只是创建它,但不立刻执行//oneshot 表示该服务只执行一次当android系统boot时,开始加载动画和开机铃声,其代码位于//源文件SurfaceFlinger.cppstatus_t SurfaceFlinger::readyT oRun(){// start boot animation serviceproperty_set("ctl.start", "bootanim");//}当Android完成boot后,关闭动画和开机铃声,代码位于//源文件SurfaceFlinger.cppvoid SurfaceFlinger::bootFinished(){//stop bootanim serviceproperty_set("ctl.stop", "bootanim");}在Android系统中,长按Power键默认会弹出对话框让你选择“飞行模式”,“静音”,“关机”等功能。

Android 开机启动流程

Android 开机启动流程

Android的开机流程1. 系统引导bootloader1) 源码:bootable/bootloader/*2) 说明:加电后,CPU将先执行bootloader程序,此处有三种选择a) 开机按Camera+Power启动到fastboot,即命令或SD卡烧写模式,不加载内核及文件系统,此处可以进行工厂模式的烧写b) 开机按Home+Power启动到recovery模式,加载recovery.img,recovery.img包含内核,基本的文件系统,用于工程模式的烧写c) 开机按Power,正常启动系统,加载boot.img,boot.img包含内核,基本文件系统,用于正常启动手机(以下只分析正常启动的情况)2. 内核kernel1) 源码:kernel/*2) 说明:kernel由bootloader加载3. 文件系统及应用init1) 源码:system/core/init/*2) 配置文件:system/rootdir/init.rc,3) 说明:init是一个由内核启动的用户级进程,它按照init.rc中的设置执行:启动服务(这里的服务指linux底层服务,如adbd提供adb支持,vold提供SD卡挂载等),执行命令和按其中的配置语句执行相应功能4. 重要的后台程序zygote1) 源码:frameworks/base/cmds/app_main.cpp等2) 说明:zygote是一个在init.rc中被指定启动的服务,该服务对应的命令是/system/bin/app_processa) 建立Java Runtime,建立虚拟机b) 建立Socket接收ActivityManangerService的请求,用于Fork应用程序c) 启动System Server5. 系统服务system server1) 源码:frameworks/base/services/java/com/android/server/SystemServer.java2) 说明:被zygote启动,通过System Manager管理android的服务(这里的服务指frameworks/base/services下的服务,如卫星定位服务,剪切板服务等)6. 桌面launcher1) 源码:ActivityManagerService.java为入口,packages/apps/launcher*实现2) 说明:系统启动成功后SystemServer使用xxx.systemReady()通知各个服务,系统已经就绪,桌面程序Home就是在ActivityManagerService.systemReady()通知的过程中建立的,最终调用()启launcher7. 解锁1) 源码:frameworks/policies/base/phone/com/android/internal/policy/impl/*lock*2) 说明:系统启动成功后SystemServer调用wm.systemReady()通知WindowManagerService,进而调用PhoneWindowManager,最终通过LockPatternKeyguardView显示解锁界面,跟踪代码可以看到解锁界面并不是一个Activity,这是只是向特定层上绘图,其代码了存放在特殊的位置8. 开机自启动的第三方应用程序1) 源码:frameworks/base/services/java/com/android/server/am/ActivityManagerService.java2) 说明:系统启动成功后SystemServer调用ActivityManagerNative.getDefault().systemReady()通知ActivityManager启动成功,ActivityManager会通过置变量mBooting,通知它的另一线程,该线程会发送广播android.intent.action.BOOT_COMPLETED以告知已注册的第三方程序在开机时自动启动。

Android启动-init简介

Android启动-init简介

2 概念介绍(准备工作)
关键词:内核空间和用户空间
2 / 31
android 系统启动流程
2.1 内核空间
Android 本质上就是一个基于 Linux 内核的操作系统+庞杂的上层应用。一个完整的 Linux 系统首先会将一个 Linux 内核装载到内存,也就是编译 Linux 内核源代码生成的 bzImage 文件,对于为 Android 优化的 Linux 内核源代码会生成 zImage 文件。该文件就 是 Linux 内核的二进制版本,zImage 在内核空间运行。内核空间简而言之就是内核 kernel 的非用户 user 能控制的运行空间。
1 / 31
android 系统启动流程
1. 概述
Linux 内核启动之后,执行第一个进程 Init,init 会启动本地服务,创建 Zygote 进程, 并最终到达 systemserver,systemserver 再往上启动 framework 层相关服务和进程,启 动 launcher 等完成整个开机流程。 下面先给一张 android 系统启动框架图:
2.4 zygote 是所有 java 进程的父进程
zygote 进程被 init 启动起来,再往上启动 systemserver,并随时等待其他 java 进程 请求,负责 java 进程的真正的创建和入口函数的执行。 所以我们很有必要搞清楚,zygote 到底是怎么启动的以及他自身的工作原理。
3 / 31
android 系统启动流程
Android 启动-Init 介绍 目录
1. 概述................................................................................................................................................ 2 2 概念介绍(准备工作)................................................................................................................. 2 2.1 内核空间.............................................................................................................................. 3 2.2 用户空间.............................................................................................................................. 3 2.3 两个空间需要通讯.............................................................................................................. 3 2.4 zygote 是所有 java 进程的父进程.......................................................................................3 3 Init 进程解析.................................................................................................................................. 4 3.1 /system/core/init/init.c 分析................................................................................................ 4 3.2 核心任务一: 各种初始化...................................................................................................6 3.3 核心任务二: 解析和执行 init.rc 文件............................................................................... 7 3.4 核心任务三: 执行 command,监控 service 重启和 socket 请求................................. 12 4 认识和解析 init.rc 的内容........................................................................................................... 13 4.1 认识 AIL 语言写成的 init.rc............................................................................................... 13 4.1.1 行(line)的概念........................................................................................................ 13 4.1.2 段(section)的概念.................................................................................................. 14 4.1.3 动作(action)和服务(service)的概念...................................................................... 15 4.1.3.1 目前 init.rc 内已经写入的主要的 action 和 service.................................. 15 4.1.3.2 Action............................................................................................................ 15 4.1.3.3 Command...................................................................................................... 16 4.1.3.4 Services......................................................................................................... 16 4.1.3.5 Option........................................................................................................... 17 4.2 解析 init.rc 的过程............................................................................................................ 18 4.2.1 init_parse_config_file 和 parse_config................................................................... 18 4.2.2 next_token............................................................................................................... 20 4.2.3 lookup_keyword、kw_is 和 keywords.h.................................................................24 4.2.4 parse_new_section.................................................................................................. 29

android init language

android init language

Android初始化语言init.rc 文件并不是普通的配置文件,而是由一种被称为“Android初始化语言”(Android Init Language,这里简称为AIL)的脚本写成的文件。

AIL由如下4部分组成:1. 动作(Actions)2. 命令(Commands)3.服务(Services)4. 选项(Options)这4部分都是面向行的代码,也就是说用回车换行符作为每一条语句的分隔符。

而每一行的代码由多个符号(Tokens)表示。

可以使用反斜杠转义符在Token中插入空格。

双引号可以将多个由空格分隔的Tokens合成一个Tokens。

如果一行写不下,可以在行尾加上反斜杠,来连接下一行。

也就是说,可以用反斜杠将多行代码连接成一行代码。

AIL的注释与很多Shell脚本一行,以#开头。

AIL在编写时需要分成多个部分(Section),而每一部分的开头需要指定Actions或Services。

也就是说,每一个Actions或Services确定一个Section。

而所有的Commands和Options只能属于最近定义的Section。

如果Commands和Options在第一个Section之前被定义,它们将被忽略。

Actions和Services的名称必须唯一。

如果有两个或多个Action或Service拥有同样的名称,那么init在执行它们时将抛出错误,并忽略这些Action和Service。

下面来看看Actions、Services、Commands和Options分别应如何设置。

Actions的语法格式如下:on <trigger><command><command><command>也就是说Actions是以关键字on开头的,然后跟一个触发器,接下来是若干命令。

例如,下面就是一个标准的Action。

on bootifup lohostname localhostdomainname localdomain其中boot是触发器,下面三行是command那么init.rc到底支持哪些触发器呢?目前init.rc支持如下5类触发器。

Android系统初始化开始位置及流程分析

Android系统初始化开始位置及流程分析

Android系统初始化开始位置及流程分析Android系统初始化开始位置及流程分析android系统的初始化过程是从那里开始呢?它在加载linux基本内核后,就开始运行一个初始化进程,叫做init进程,那么怎么样知道它是加载init进程的呢?难道上天就注定的吗?呵呵,不是的,原来是从android加载linux内核时,就设置了下面的参数:Kernel command line: noinitrd root=/dev/nfs console=ttySAC0 init=/init nfsroot=192.168.1.103:/nfsboot ip=192.168.1.20:192.168.1.103:192.168.1.1:255.255.255.0::eth0:o n在这行命令里,就是告诉linux内核初始化完成后开始运行init进程,由于init进程就是放在系统根目录下面。

而这个进程的代码,就是位于源码的目录system/core/init下面,现在就来仔细地分析这个进程到底做了什么事情,以便理解整个系统运行情况。

在分析过程中,会学习很多有用知识,甚至linux编程知识。

这么有用,还等什么呢?现在就开始,找到目录system/core/init/init.c代码,先从main函数开始,如下:#001 int main(int argc, char **argv)#002 {#003 int device_fd = -1;#004 int property_set_fd = -1;#005 int signal_recv_fd = -1;#006 int keychord_fd = -1;#007 int fd_count;#008 int s[2];#009 int fd;#010 struct sigaction act;#011 char tmp[PROP_VALUE_MAX];#012 struct pollfd ufds[4];#013 char *tmpdev;#014 char* debuggable;#015#016#017 act.sa_handler = sigchld_handler;#018 act.sa_flags = SA_NOCLDSTOP;#019 act.sa_mask = 0;#020 act.sa_restorer = NULL;#021 sigaction(SIGCHLD, &act, 0);在上面这段代码里,调用函数sigaction来设置处理子进程发送回来的关闭信号,其中SIGCHLD是设置子进程信号处理,SA_NOCLDSTOP是表示子进程结束时不要向父进程发送SIGCHLD,sigchld_handler是信号SIGCHLD的处理函数。

Android系统默认Home应用程序(Launcher)的启动过程源代码分析

Android系统默认Home应用程序(Launcher)的启动过程源代码分析

在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home 应用程序就是Launcher了,本文将详细分析Launcher应用程序的启动过程。

Android系统的Home应用程序Launcher是由ActivityManagerService启动的,而ActivityManagerService和PackageManagerService一样,都是在开机时由SystemServer组件启动的,SystemServer组件首先是启动ePackageManagerServic,由它来负责安装系统的应用程序,具体可以参考前面一篇文章Android应用程序安装过程源代码分析,系统中的应用程序安装好了以后,SystemServer 组件接下来就要通过ActivityManagerService来启动Home应用程序Launcher了,Launcher在启动的时候便会通过PackageManagerServic把系统中已经安装好的应用程序以快捷图标的形式展示在桌面上,这样用户就可以使用这些应用程序了,整个过程如下图所示:点击查看大图下面详细分析每一个步骤。

Step 1. SystemServer.main这个函数定义在frameworks/base/services/java/com/android/server/SystemServer.java文件中,具体可以参考前面一篇文章Android应用程序安装过程源代码分析的Step 1。

Step 2. SystemServer.init1这个函数是一个JNI方法,实现在 frameworks/base/services/jni/com_android_server_SystemServer.cpp文件中,具体可以参考前面一篇文章Android应用程序安装过程源代码分析的Step 2。

Android 的 init.rc 文件的语法详解

Android 的 init.rc 文件的语法详解

Android初始化语言包含了四种类型的声明:Actions(行动)、 Commands(命令)、Services(服务)和Options(选项)。

所有这些都是以行为单位的,各种记号由空格来隔开。

C语言风格的反斜杠号可用于在记号间插入空格。

双引号也可用于防止字符串被空格分割成多个记号。

行末的反斜杠用于折行。

注释行以井号(#)开头(允许以空格开头)。

Actions和Services声明一个新的分组。

所有的命令或选项都属于最近申明的分组。

位于第一个分组之前的命令或选项将会被忽略。

Actions和Services有唯一的名字。

如果有重名的情况,第二个申明的将会被作为错误忽略。

(???我们是否应该以覆盖来代替忽略)Actions(行动)----------Actions其实就是一序列的Commands(命令)。

Actions都有一个trigger(触发器),它被用于决定action的执行时间。

当一个符合action触发条件的事件发生时,action会被加入到执行队列的末尾,除非它已经在队列里了。

队列中的每一个action都被依次提取出,而这个action中的每个command (命令)都将被依次执行。

Init在这些命令的执行期间还控制着其他的活动(设备节点的创建和注销、属性的设置、进程的重启)。

Actions的形式如下:on 《trigger》《command》《command》《command》Services(服务)----------Services(服务)是一个程序,他在初始化时启动,并在退出时重启(可选)。

Services(服务)的形式如下:service 《name》《pathname》 [ 《argument》 ]*《option》《option》...Options(选项)----------Options(选项)是一个Services(服务)的修正者。

他们影响Services(服务)在何时,并以何种方式运行。

Android系统语言默认设置为简体中文

Android系统语言默认设置为简体中文
2编译的时候通过指明编译参数为简体中文这样编译传统就会编译出来的系统属性文件在
Android系统语言默认设置为简体中文
设置语言的原理很简单,可以通过修改系统属性来达到默认语言的作用。
这里有两种方法,需要的可以借鉴下:
1、在init.rc或者在其他的开机初始化文件如:default.prop中加入如下设置系统属性的代码:
[ro.product.locale.region]: [CN]
2、编译的时候,通过指明编译参数为简体中文,这样编译传统就会编译出来的系统属性文件,在
系统初始化的时候将会把上面的属性给进行正确的初始化,例如:
make PRODUCT-machineID-eng-zh_CN
[nguage]: [zh]
[persist.sys.country]: [CN]
[localevar]: []
[persist.sys.timezone]: [Asia/Shanghai]
[nguage]: [zh]

Android必懂术语表

Android必懂术语表

Android for All 术语表下面的 Android 和 Java 术语表是对优达学城的Google:Android 基础纳米学位项目(适用于想要着手构建 Android 应用的编程初学者)的补充资料,由优达学城翻译提供。

如果你对其中某些术语的翻译有更好的建议,欢迎你在论坛中提出。

点击这里,访问英文版术语表。

Code samples and vocab glossary files are licensed under the Apache 2.0 License. All目录Access Modifier(访问修饰符)Activity.onCreateAndroid StudioAssignment Operator(赋值操作符)Attributes(属性)Black Box(黑盒)Boolean(布尔)Breakpoint(断点)ButtonCall a Method(调用方法)Camel Case(驼峰式大小写)CastCheckboxClass(类)Class Name(类名)Code(代码)Comment(注释)Compile-time Error(编译时错误)Constructor(构造函数)Control Flow(控制流)Crash(崩溃)Data Type(数据类型)Debug(调试)Declare(声明)Define a Method(定义方法)Documentation(文档)dp (Density-Independent Pixel)(与密度无关的像素)Encapsulation(封装)Event-Driven Programming(事件驱动编程)Execute(执行)Expression(表达式)Field(域)findViewByIdGetter Method(Getter 方法)GistGlobal Variable(全局变量)GradleHardcode(硬编码)Hexadecimal Color (Hex Color)(十六进制颜色)if/else Statement(if/else 语句)ImageViewImport Statement(Import 语句)InflateInitialize(初始化)Input Parameter(输入参数)Instance(实例)Integer(整数)IntentJava Programming Language(Java 编程语言)JavadocLayout(布局)layout_marginlayout_weightLinearLayoutLiteral(文本)Local Variable(局部变量)match_parentMethod Signature(方法签名)Method(方法)Nested ViewGroups(嵌套式 ViewGroup)Object(对象)OnClickListenerOperator(操作符)Override(覆盖)Package Name(包名)Padding(内边距)Parent View(父视图)Parse(解析)Prototype(原型)Pseudocode(伪代码)Redlines(红线)RelativeLayoutReturn Value(返回值)Robust(可靠)Root View(根视图)Runtime Error(运行时错误)Setter Method(Setter 方法)sp (Scale-Independent Pixel)(与比例无关的像素)Stack Trace(堆栈跟踪)State(状态)String(字符串)Style(样式)Subclass(子类)Superclass or Base Class(超类或基类)System Log(系统日志)Text Localization(文本本地化)TextViewTheme(主题)User Interface(用户界面)Variable(变量)Variable Declaration(变量声明)Variable Name(变量名)Variable Scope(变量范围)View(视图)ViewGroupView Hierarchy(视图层次结构)voidwrap_contentXMLXML Tag(XML 标记)Code samples and vocab glossary files are licensed under the Apache 2.0 License. All other content of this page, including art, is licensed under the Creative Commons Attribution 3.0 License.Access Modifier(访问修饰符)定义计算机是按照一系列称为程序的指令运行的机器。

精品文档安卓手机Recovery主界面中英文对照

精品文档安卓手机Recovery主界面中英文对照

安卓手机Recovery主界面中英文对照音量键为光标选择键,可以用来移动光标,电源键为确认键!一:Recovery主界面---reboot system now 重启手机(刷机完毕选择此项就能重新启动系统)---apply SDcard:update.zip 安装存储卡中的update.zip升级包(你可以把刷机包命名为update.zip然后用这个选项直接升级)---wipe data/factory reset 清除用户数据并恢复出厂设置(刷机前必须执行的选项)---wipe cache partition 清除系统缓存(刷机前执行)(系统出问题也可尝试此选项,一般能够解决)---install zip from SDcard 从SDcard上安装zip升级包(可以执行任意名称的zip升级包,不限制升级包名称)---backup and restore 备份和还原系统(作用和原理如同电脑上的chost 一键备份和还原)---mounts and storage 挂载和存储选项(详细功能见下面的解释)---advance 高级设置把补丁复制到SD卡上然后选择第二个选项首先,介绍下进入Recovery的方式1:完全关机(拔电池再装上或者设置中关闭快速启动),按住音量下+电源键开机,进入bootloader界面(注意是按住)2:按音量键向下移动光标到Recovery那一行3:按电源键(之后机器会重启进入Recovery)音量键为光标选择键,可以用来移动光标,电源键为确认键!-----------------------------------------------------------------------------------------------------------一:Recovery主界面-----------------------------------------------------------------------------------------------------------*reboot system now:重启手机(刷机完毕选择此项就能重新启动系统)*apply SDcard:update.zip:安装存储卡中的update.zip升级包(你可以把刷机包命名为update.zip然后用这个选项直接升级)*wipe data/factory reset:清除用户数据并恢复出厂设置(刷机前必须执行的选项)*wipe cache partition:清除系统缓存(刷机前执行)(系统出问题也可尝试此选项,一般能够解决)*install zip from SDcard:从SDcard上安装zip升级包(可以执行任意名称的zip升级包,不限制升级包名称)*backup and restore:备份和还原系统(作用和原理如同电脑上的chost一键备份和还原)*mounts and storage:挂载和存储选项(详细功能见下面的解释)*advanced:高级设置-----------------------------------------------------------------------------------------------------------二:backup and restore功能详解*Backup:备份当前系统*Restore:还原上一个系统*Advanced Restore:高级还原选项(用户可以自选之前备份的系统,然后进行恢复)三:mounts and storage功能详解*mount /system:挂载system文件夹(基本用不到)*mount /data:挂载data文件夹(基本用不到)*unmount /cache:取消cache文件夹挂载(基本用不到)*unmount /sdcard:取消内存卡挂载(基本用不到)*mount /sd-ext:挂载内存卡Ext分区(基本用不到)*format boot:格式化boot(刷机前最好执行一下)*format system:格式化system(刷机前最好执行一下)*format data:格式化data(刷机前最好执行一下)*format cache:格式化cache(刷机前最好执行一下)*format sdcard:格式化内储卡(执行此项你会后悔的)*format sd-ext:格式化内存卡Ext分区(执行此项你会后悔的)*mount USB storage:开启Recovery模式下的USB大容量存储功能(也就是说可以在Recovery下对内存卡进行读写操作)四:Advance 功能详解*Reboot Recovery:重启Recovery(重启手机并再次进入Recovery)*Wipe Dalvik Cache:清空虚拟机缓存(可以解决一些程序FC的问题)*Wipe Battery Stats: 清空电池调试记录数据(刷机前做下这个,会比较好,感觉自己电量有问题的机油也可以试试)*Report Error:错误报告(配合固件管家用的,不是开发者请无视)*Key Test:按键测试(基本没撒用的功能!)*Partition SD Card:对内存卡分区(个人觉得DHD不需要分区,一来耗电、二来影响速度!)*Fix Permissions:修复Root权限(如果你的手机Root权限出问题了,可以用这个功能)The furthest distance in the worldIs not between life and deathBut when I stand in front of youYet you don't know thatI love you.The furthest distance in the worldIs not when I stand in front of youYet you can't see my loveBut when undoubtedly knowing the love from bothYet cannot be together.The furthest distance in the worldIs not being apart while being in loveBut when I plainly cannot resist the yearningYet pretending you have never been in my heart.The furthest distance in the worldIs not struggling against the tidesBut using one's indifferent heartTo dig an uncrossable riverFor the one who loves you.倚窗远眺,目光目光尽处必有一座山,那影影绰绰的黛绿色的影,是春天的颜色。

android中如何修改默认语言和国家

android中如何修改默认语言和国家

android中如何修改默认语言和国家.查了很多的网页,上面都只有写要修改PRODUCT_LOCALES字段.但.MK文件太多的,我找了很久都没有找到这个字段在哪里定义的.最后发现的结果:./device/rockchip/sdkdemo/boardconfig.mk中.这个文件夹在标准的android代码中属于定制文件目录,可以在相应的项目中找到对应的文件夹.修改此项.修改的方法是将默认的国家放在此字段的第一个位置.一般默认的是英语.例如韩国:PRODUCT_LOCALES := ko_KR en_US zh_CN另附转文一篇:这个讲得详细一些,还包含另一种修改方法,可参考.转自:/archives/android-custom-system-language-to-simplified-chinese. htmlAndroid系统原版默认的语言为英文,而我们定制系统可能需要用户一开机就是简体中文。

我们可以通过修改系统属性来达到默认语言的作用。

这里有两种方法,需要的可以借鉴下:1、在init.rc或者在其他的开机初始化文件如:default.prop中加入如下设置系统属性的代码:[nguage]: [zh][persist.sys.country]: [CN][persist.sys.localevar]: [][persist.sys.timezone]: [Asia/Shanghai][nguage]: [zh][ro.product.locale.region]: [CN]2、编译的时候,通过指明编译参数为简体中文,这样编译传统就会编译出来的系统属性文件,在系统初始化的时候将会把上面的属性给进行正确的初始化,例如:make PRODUCT-machineID-eng-zh_CN其他相关资料:1、ICU4C简介ICU4C(ICU for C,/ ) 是ICU在C/C++平台下的版本,ICU(International Component for Unicode)是基于"IBM公共许可证"的,与开源组织合作研究的, 用于支持软件国际化的开源项目。

安卓系统刷机界面英文翻译大全,刷机必备!

安卓系统刷机界面英文翻译大全,刷机必备!

安卓系统刷机界面英文翻译大全,刷机必备!-reboot system now 重启系统-apply update f rom ADB 从ADB进行更新。

ADB驱动是Android设备(如手机)连接PC时所需要的应用程序。

-apply updata from internal sdcard 使用手机内存中的刷机包-apply updata from external sdcard 使用手机扩展SD卡中的刷机包-apply sdcard:update.zip 使用SD卡根目录的update.zip更新系统-wipe data/factory reset 清空data分区并恢复出厂设置-wipe cache partition 清空cache(高速缓存)分区-install zip from sdcard 从SD卡选择文件更新系统--apply sdcard:update.zip 使用SD卡根目录的update.zip 更新系统--choose zip from sdcard 从SD卡选择zip格式升级包--toggle signature verification 切换签名验证--toggle script asserts 切换升级脚本检查-backup and restore 备份和恢复--Backup 备份--Restore 恢复--Advanced Restore 高级恢复-mounts and storage 挂载和存储--mount /system 挂载/system分区(系统分区)--mount /data 挂载/data分区(数据分区)--mount /cache 挂载/cache分区(缓存分区)--mount /sd-ext 挂载/sd-ext分区(A2SD分区)--format boot 格式化内核分区--format system 格式化系统分区--format data 格式化数据分区--format cache 格式化缓存分区--format sdcard 格式化存储卡--format sd-ext 格式化内存卡SD--mount USB storage 挂载SD卡为U盘模式-advanced 高级--Reboot Recovery 重启Recovery--Wipe Dalvik Cache 清空Dalvik缓存--Wipe Battery Stats 清空电池状态--Report Error 报告错误--Key Test 键位测试--Partition SD Card 对SD卡分区--Fix Permissions 修复权限。

Androidinit.rc文件简单介绍

Androidinit.rc文件简单介绍

Androidinit.rc⽂件简单介绍Android init.rc⽂件简单介绍init.rc脚本是由Android中linux的第⼀个⽤户级进程init进⾏解析的。

init.rc ⽂件并不是普通的配置⽂件,⽽是由⼀种被称为“Android初始化语⾔”(Android Init Language,这⾥简称为AIL)的脚本写成的⽂件。

该⽂件在ROM中是只读的,即使有了root权限,可以修改该⽂件也没有。

因为我们在根⽬录看到的⽂件只是内存⽂件的镜像。

也就是说,android启动后,会将init.rc⽂件装载到内存。

⽽修改init.rc⽂件的内容实际上只是修改内存中的init.rc⽂件的内容。

⼀旦重启android,init.rc⽂件的内容⼜会恢复到最初的装载。

想彻底修改init.rc⽂件内容的唯⼀⽅式是修改Android的ROM中的内核镜像(boot.img)。

init.rc脚本包括了⽂件系统初始化、装载的许多过程。

init.rc的⼯作主要是:1)设置⼀些环境变量2)创建system、sdcard、data、cache等⽬录(见案例1)3)把⼀些⽂件系统mount到⼀些⽬录去,如,mount tmpfs tmpfs /sqlite_stmt_journals4)设置⼀些⽂件的⽤户群组、权限5)设置⼀些线程参数6)设置TCP缓存⼤⼩init脚本的关键字(如mkdir,chmod,service等等)可以参考init进程的system/core/init/keyword.h⽂件。

init.rc的使⽤⽅法,可以参考说明⽂件system/core/init/readme.txt如果想要修改启动过程只需要修改init.c(system/core/init)或者init.rc⾥的内容即可.init.c与init.rc在源码中的位置分别位于如下:1 init.c : /system/core/init2 init.rc : /system/core/rootdir感谢阅读,希望能帮助到⼤家,谢谢⼤家对本站的⽀持!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在分析Android系统的init程序源码时看到了这份Doc,觉得对系统的分析挺有用的,所以翻译了出来!
Android初始化语言(init.*.rc、init.conf文件格式)
Android初始化语言包含了四种类型的声明:Actions(行动)、Commands(命令)、Services (服务)和Options(选项)。

所有这些都是以行为单位的,各种记号由空格来隔开。

C语言风格的反斜杠号可用于在记号间插入空格。

双引号也可用于防止字符串被空格分割成多个记号。

行末的反斜杠用于折行。

注释行以井号(#)开头(允许以空格开头)。

Actions和Services声明一个新的分组。

所有的命令或选项都属于最近申明的分组。

位于第一个分组之前的命令或选项将会被忽略。

Actions和Services有唯一的名字。

如果有重名的情况,第二个申明的将会被作为错误忽略。

(???我们是否应该以覆盖来代替忽略)
Actions(行动)
----------
Actions其实就是一序列的Commands(命令)。

Actions都有一个trigger(触发器),它被用于决定action的执行时间。

当一个符合action触发条件的事件发生时,action会被加入到执行队列的末尾,除非它已经在队列里了。

队列中的每一个action都被依次提取出,而这个action中的每个command(命令)都将被依次执行。

Init在这些命令的执行期间还控制着其他的活动(设备节点的创建和注销、属性的设置、进程的重启)。

Actions的形式如下:
on
Services(服务)
----------
Services(服务)是一个程序,他在初始化时启动,并在退出时重启(可选)。

Services (服务)的形式如下:
service [ ]*
创建和执行一个程序()。

在程序完全执行前,init将会阻塞。

由于它不是内置命令,应尽量避免使用exec,它可能会引起init卡死。

(??? 是否需要一个超时设置?)
export
在全局环境变量中设在环境变量为。

(这将会被所有在这命令之后运行的进程所继承)
ifup
启动网络接口
import
解析一个init配置文件,扩展当前配置。

hostname
设置主机名。

chmod
更改文件访问权限。

chown
更改文件的所有者和组。

class_start
启动所有指定服务类下的未运行服务。

class_stop
停止指定服务类下的所有已运行的服务。

domainname
设置域名。

insmod
加载中的模块。

mkdir [mode] [owner] [group]
创建一个目录,可以选择性地指定mode、owner以及group。

如果没有指定,默认的权限为755,并属于root用户和root组。

mount
[ ]*
试图在目录
挂载指定的设备。

可以是以mtd@name 的形式指定一个mtd块设备。

包括"ro"、"rw"、"remount"、"noatime"、 ...
待完成......(暂时不可用)
setprop
设置系统属性为值.
setrlimit
设置的rlimit(资源限制)。

start
启动指定服务(如果此服务还未运行)。

stop
停止指定服务(如果此服务在运行中)。

symlink
创建一个指向的软连接。

sysclktz
设置系统时钟基准(0代表时钟滴答以格林威治平均时(GMT)为准)
trigger
触发一个事件。

用于将一个action与另一个action排列。

(?????)
write [ ]*
打开路径为的一个文件,并写入一个或多个字符串。

Properties(属性)
----------
Init更新一些系统属性以提供对正在发生的事件的监控能力:
init.action
此属性值为正在被执行的action的名字,如果没有则为""。

mand
此属性值为正在被执行的command的名字,如果没有则为""。

init.svc.
名为的service的状态("stopped"(停止), "running"(运行), "restarting"(重启))
init.conf实例
-----------------
# not complete -- just providing some examples of usage
#
on boot
export PATH /sbin:/system/sbin:/system/bin
export LD_LIBRARY_PATH /system/lib
mkdir /dev
mkdir /proc
mkdir /sys
mount tmpfs tmpfs /dev
mkdir /dev/pts
mkdir /dev/socket
mount devpts devpts /dev/pts
mount proc proc /proc
mount sysfs sysfs /sys
write /proc/cpu/alignment 4
ifup lo
hostname localhost
domainname localhost
mount yaffs2 mtd@system /system
mount yaffs2 mtd@userdata /data
import /system/etc/init.conf
class_start default
service adbd /sbin/adbd
user adb
group adb
service usbd /system/bin/usbd -r
user usbd
group usbd
socket usbd 666
service zygote /system/bin/app_process -Xzygote /system/bin --zygote socket zygote 666
service runtime /system/bin/runtime
user system
group system
on device-added-/dev/compass
start akmd
on device-removed-/dev/compass
stop akmd
service akmd /sbin/akmd
disabled
user akmd
group akmd
调试记录
---------------
在默认情况下,程序在被init执行时会将标准输出和标准错误都重定向到/dev/null(丢弃)。

若你想要获得调试信息,你可以通过Andoird系统中的logwrapper程序执行你的程序。

它会将标准输出/标准错误都重定向到Android日志系统(通过logcat访问)。

例如:
service akmd /system/bin/logwrapper /sbin/akmd。

相关文档
最新文档