rc综合中target goal 区别library和lef library的区别

12564人阅读
本文主要来自$ANDROID_SOURCE/system/init/readme.txt的翻译.
Android init.rc文件由系统第一个启动的init程序解析,此文件由语句组成,主要包含了四种类型的语句:Action,Commands,Services,Options.在init.rc文件中一条语句通常是占据一行.单词之间是通过空格符来相隔的.如果需要在单词内使用空格,那么得使用转义字符&\&,如果在一行的末尾有一个反斜杠,那么是换行折叠符号,应该和下一行合并成一起来处理,这样做主要是为了避免一行的字符太长,与C语言中的含义是一致的。注释是以#号开头。 Action和services显式声明了一个语句块,而commands和options属于最近声明的语句块。在第一个语句块之前
的commands和options会被忽略.
在具体讲解这之前,有些关键词得先了解.
token:& 计算机语言中的一个单词,就跟英文中的单词差不多一人概念.
Section: 语句块,相当于C语言中大括号内的一个块。一个Section以Service或On开头的语句块.以Service开头的Section叫做服务,而以On开头的叫做动作(Action).
services: 服务.
Action: 动作
commands:命令.
options:选项.
trigger:触发器,或者叫做触发条件.
class: 类属,即可以为多个service指定一个相同的类属,方便操作同时启动或停止.
3 语句解析
3.1 动作(Action)
动作表示了一组命令(commands)组成.动作包含一个触发器,决定了何时执行这个动作。当触发器的条件满足时,这个动作会被加入到已被执行的队列尾。如果此动作在队列中已经存在,那么它将不会执行.
&一个动作所包含的命令将被依次执行。动作的语法如下所示:
on &trigger&
3.2 服务(services)
服务是指那些需要在系统初始化时就启动或退出时自动重启的程序.
它的语法结构如下所示:
service &name& &pathname& [ &argument& ]*
3.3 选项(options)
选项是用来修改服务的。它们影响如何及何时运行这个服务.
据设备相关的关键服务,如果在4分钟内,此服务重复启动了4次,那么设备将会重启进入还原模式。
服务不会自动运行,必须显式地通过服务器来启动。
setenv &name& &value&
设置环境变量
socket &name& &type& &perm& [ &user& [ &group& ] ]
在/dev/socket/下创建一个unix domain的socket,并传递创建的文件描述符fd给服务进程.其中type必须为dgram或stream,seqpacket.用户名和组名默认为0
user &username&
在执行此服务之前先切换用户名。当前默认为root.
group &groupname& [ &groupname& ]*
类似于user,切换组名
当此服务退出时不会自动重启.
class &name&
给服务指定一个类属,这样方便操作多个服务同时启动或停止.默认情况下为default.
当服务重启时执行一条指令,
3.4 触发器(trigger)
触发器用来描述一个触发条件,当这个触发条件满足时可以执行动作.
当init程序执行,并载入/init.conf文件时触发.
&name&=&value&
当属性名对应的值设置为指定值时触发.
device-added-&path&
当添加设备时触发.
device-removed-&path&
当设备移除时触发.
service-exited-&name&
当指定的服务退出时触发.
3.5 命令(commands)
exec &path& [ &argument& ]*
执行指定路径下的程序,并传递参数.
export &name& &value&
设置全局环境参数,此参数被设置后对所有进程都有效.
ifup &interface&
使指定的网络接口&上线&,相当激活指定的网络接口
import &filename&
导入一个额外的init配置文件.
hostname &name&
设置主机名
chdir &directory&
改变工作目录.
chmod &octal-mode& &path&
改变指定文件的读取权限.
chown &owner& &group& &path&
改变指定文件的拥有都和组名的属性.
chroot &directory&
改变进行的根目录.
class_start &serviceclass&
启动指定类属的所有服务,如果服务已经启动,则不再重复启动.
class_stop &serviceclass&
停止指定类属的所胡服务.
domainname &name&
insmod &path&
安装模块到指定路径.
mkdir &path& [mode] [owner] [group]
用指定参数创建一个目录,在默认情况下,创建的目录读取权限为755.用户名为root,组名为root.
mount &type& &device& &dir& [ &mountoption& ]*
类似于linux的mount指令
TBD(To Be Determined),待定.
setprop &name& &value&
设置属性及对应的值.
setrlimit &resource& &cur& &max&
设置资源的rlimit(资源限制),不懂就百度一下rlimit
start &service&
如果指定的服务未启动,则启动它.
stop &service&
如果指定的服务当前正在运行,则停止它.
symlink &target& &path&
创建一个符号链接.
sysclktz &mins_west_of_gmt&
设置系统基准时间.
trigger &event&
Trigger an event.& Used to queue an action from another action.这名话没有理解,望高手指点.
write &path& &string& [ &string& ]*
往指定的文件写字符串.
3.6 属性(Properties)
init程序在运行时会更新属性系统的一些属性,提供程序内部正在执行的信息.
init.action
当前正在执行的动作,如果没有则为空字符串&&
当前正在执行的命令.没有则为空字符串.
init.svc.&name&
当前某个服务的状态,可为&stopped&, &running&, &restarting&
4 一个 init.conf例子
# not complete -- just providing some examples of usage
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
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
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
5 调试注意事项
在默认情况下,通过init程序启动的程序的标准输出stdout和标准错误输出stderr会重定向到/dev/null.如:
service akmd /system/bin/logwrapper /sbin/akmd
为了更方便调试你的程序,你可以使用Android的log系统,标准输出和标准错误输出会重定义到Android的log系统中来.
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:544033次
积分:6769
积分:6769
排名:第1556名
原创:113篇
转载:11篇
评论:345条
阅读:27808
文章:17篇
阅读:119177
文章:26篇
阅读:71176
(1)(2)(2)(5)(5)(1)(5)(4)(17)(2)(1)(15)(5)(9)(11)(2)(8)(10)(3)(12)(10)(1)Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free.
I have imported the Facebook SDK downloading it there :
and following the instructions there
I have added FacebookSDK as a Library for my current project.
But I have errors in all the Samples imported when I import the facebook project:
"Project FacebookSDK is missing required library libs/android-support-v4.jar" appears as one error for FacebookSDK project
And then I have
"The container 'Android Dependencies' references non existing library C:...\facebook-android-sdk-master\facebook\bin\facebooksdk.jar" for all the facebook sample projects that are in the facebook project.
I tried to clear the project, to do Properties > Java Compiler > Compiler compliance level 1.6 (because 5.0 or 6.0 level was needed, not 1.7, so I downloaded jdk 1.6)
tried to do Android Tools > Fix project properties
But I still have the same erros...
Could someone tell me what I should do?
I think you have to configure Buildpath of your project. Do this as suggested below:
RightClick on your Project -& Build Path -& Configure Buildpath
Then the window be will be shown with Libraries as one of the tab. Select that tab.
Then click Add External Jars in the right side buttons list. Add the required Jars and select OK. Once clean and build your project.
Hope this will help you.
4,745123676
I had the same problem and as I imported FacebookSDK project and all sample projects with it as described in this getting started
. Due to this none of the projects compiled as samples depends on facebooksdk.jar and FacebookSDK project doesn't build because of error sin other projects. Do this:
Close all the sample projects
Just clean and built FacebookSDK project
You should see facebooksdk.jar in bin folder
Open all the other projects, clean and build
All error of missing library should go away
19.4k33160
Your Answer
Sign up or
Sign up using Google
Sign up using Facebook
Sign up using Stack Exchange
Post as a guest
Post as a guest
By posting your answer, you agree to the
Not the answer you're looking for?
Browse other questions tagged
Stack Overflow works best with JavaScript enabledICC与Encounter所需文件的区别以及文件之间的转换_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
ICC与Encounter所需文件的区别以及文件之间的转换
I​C​C​与​E​n​c​o​u​n​t​e​r​所​需​文​件​的​区​别​以​及​文​件​之​间​的​转​换
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢

我要回帖

更多关于 target library 的文章

 

随机推荐