如何做原创短视频网站,主机做网站服务器怎么设置,公司查名,互联网公司估值达到一定基数后就不会再增长最近要用到这个#xff0c;所以也花时间看看。
从分层来说#xff0c;安卓的自启动也分成三种#xff0c;app的自启动#xff0c;framework服务的自启动#xff0c;HAL服务的自启动。现在简单说说这三种吧。当然#xff0c;我主要关注的还是最后一种。。。
一 App的自启…最近要用到这个所以也花时间看看。
从分层来说安卓的自启动也分成三种app的自启动framework服务的自启动HAL服务的自启动。现在简单说说这三种吧。当然我主要关注的还是最后一种。。。
一 App的自启动
1 AndroidManifest.xml中修改
uses-permission android:nameandroid.permission.RECEIVE_BOOT_COMPLETED /2 编写广播接收器
public class BootCompletedReceiver extends BroadcastReceiver {Overridepublic void onReceive(Context context, Intent intent) {if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {// 启动应用的主活动Intent activityIntent new Intent(context, MainActivity.class);activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(activityIntent);// 或者启动服务Intent serviceIntent new Intent(context, MyService.class);context.startService(serviceIntent);}}
}3 在AndroidManifest.xml中注册广播接收器
receiver android:name.BootCompletedReceiver android:enabledtrue android:exportedfalseintent-filteraction android:nameandroid.intent.action.BOOT_COMPLETED /category android:nameandroid.intent.category.DEFAULT //intent-filter
/receiver二 Framework的自启动
基本上和app差不多有一些细微修改。
AndroidManifest.xml中定义是这样的。
service android:name.MyService android:enabledtrue android:exportedfalse /在广播接收器中启动服务是这样的。
Override
public void onReceive(Context context, Intent intent) {if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {Intent serviceIntent new Intent(context, MyService.class);context.startService(serviceIntent);}
}三 Hal service的自启动
1 增加service.rc
service SampleService /system/bin/sampleserviceclass haluser systemgroup system# 如果在rc⽂件中添加了 class hal即归类为hal服务会在init的start hal阶段通过hwservice启动所有的hal服务。在Android.bp中增加这个rc文件。
2 增加Selinux权限
关于这部分可以看看我之前写的SEAndroid学习12 -- SELinux-CSDN博客
关于这个部分有两个部分是一个系统的配置一个是服务的配置。
系统配置
在瑞芯微的平台是这样获取路径的get_build_var BOARD_SEPOLICY_DIRS
hwservice.te
type vnd_nxpnfc_hwservice, hwservice_manager_type;
hwservice_contexts
vendor.nxp.nxpnfc::INxpNfc (对照manifest中增加的instance别写错)
u:object_r:vnd_nxpnfc_hwservice:s0
file_contexts
/vendor/bin/hw/vendor\.nxp\.nxpnfc1\.0-service u:object_r:nxpnfc_hal_exec:s0
服务配置
fileservice.te
type nxpnfc_hal, domain;
type nxpnfc_hal_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(nxpnfc_hal)
add_hwservice(nfc, vnd_nxpnfc_hwservice) # 如果是通过nfc进程启动新加的服务才需要添
加
具体可以参考这个android 实现一个开机自启动的service_android开机自启动service-CSDN博客 下周会具体做部分工作到时候再更新把。。。 参考
Rockchip_Developer_Guide_Android_SELinux(Sepolicy)_CN.pdf