当前位置:首页 » 安卓系统 » androidsystemserver

androidsystemserver

发布时间: 2022-06-08 17:52:53

① 如何在Android中添加系统服务

这里说的系统服务,是指捆绑在system_process进程中的服务。仔细阅读源码可以发现,在frameworks/base/services/java/com/android/server/SystemServer.java中添加了很多服务,什么熵信息、电量、wife等等服务,这些服务启动都在launcher之前,一般要继承Binder或者继承一个AIDL。下面试着来添加一个简单系统服务。
一、在frameworks/base/core/java/android/os/ 增加一个aidl文件,最后用aidl工具生产一个Java文件,这样可以方便后面:然后在修改/frameworks/base/Android.mk,在LOCAL_SRC_FILES里添加一行:core/java/android/os/IYtTtsService.aidl \不确定补充:把AIDL文件写在这个地方似乎可以避免加@hide
二 、在frameworks/base/services/java/com/android/server/ 新建要增加的service,继承上面aidl生产的java
三、在frameworks/base/services/java/com/android/server/SystemServer.java, ServerThread中run()方法中增加代码
四、在ContextImpl getSystemService中添加代码
五、测试代码

② android里每个服务启动时context到底从哪里来的呢

1.android里每个服务启动时context到底从哪里来的呢????以mountservice的context为例
在SystemServer.java的run函数中有如下代码
context = ActivityManagerService.main(factoryTest);
......
if (!"0".equals(SystemProperties.get("system_init.startmountservice"))) {
try {
/*
* NotificationManagerService is dependant on MountService,
* (for media / usb notifications) so we must start MountService first.
*/
Slog.i(TAG, "Mount Service");
mountService = new MountService(context);
ServiceManager.addService("mount", mountService);
} catch (Throwable e) {
reportWtf("starting Mount Service", e);
}
}
由此可知,由systemserver启动的服务的context都来自ActivityManagerService
ActivityManagerService.java

public static final Context main(int factoryTest) {
......
ActivityThread at = ActivityThread.systemMain();
......
Context context = at.getSystemContext();
......
return context;
}
由上可知,该context是由ActivityThread 创建的
ActivityThread .java
public ContextImpl getSystemContext() {
synchronized (this) {
if (mSystemContext == null) {
ContextImpl context =
ContextImpl.createSystemContext(this);
LoadedApk info = new LoadedApk(this, "android", context, null,
CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO);
context.init(info, null, this);
context.getResources().updateConfiguration(
getConfiguration(), getDisplayMetricsLocked(
Display.DEFAULT_DISPLAY,
CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO));
mSystemContext = context;
//Slog.i(TAG, "Created system resources " + context.getResources()
// + ": " + context.getResources().getConfiguration());
}
}
return mSystemContext;
}
在ContextImpl .java中
static ContextImpl createSystemContext(ActivityThread mainThread) {
final ContextImpl context = new ContextImpl();
context.init(Resources.getSystem(), mainThread, Process.myUserHandle());
return context;
}
由此可知所有systemserver启动的服务的context对象实际为一个ContextImpl对象
即ServerThread::run<-ActivityManagerService.main<-ActivityThread::getSystemContext<-ContextImpl.createSystemContext

2.对于一个apk中的context一般直接指向这个activity本身,因为activity本身即继承自context

③ systemservice是什么

systemservice就是系统服务,是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是底层(接近硬件)程序。systemservice作为一种应用程序类型,它在后台运行。通过网络提供服务时,systemservice服务可以在活动目录中发布,从而促进了以服务为中心的管理和使用。

系统服务一般在后台运行。与用户运行的程序相比,服务不会出现程序窗口或对话框,只有在任务管理器中才能观察到它们的身影 。ServiceserviceS可以在无用户登录和用户已经注销的情况下运行,不像应用程序在没有用户注销的时候是会被终止的。

手机里的systemservice是指执行手机指定系统功能的程序、进程,以便支持其他程序,尤其是手机的低层(接近硬件)程序。一些原始的systemservice的程序最好不好删除,以防系统程序出现错误,或者其他应用服务程序使用受限。部分自装的systemservic可以通过root系统,卸载系统程序。

(3)androidsystemserver扩展阅读:

systemservice对于安卓是核心的存在。systemserver是Android系统的核心流程。作为Android基本服务的提供者,它是Android系统运行的最基本要求。所有程序在此系统服务器的进程中运行。 systemserver进程是android java机器运行的第一个进程,是andorid系统最重要的运行基础。

systemservice在手机Android开发过程中也会接触到。各种系统管理服务,如窗口操作将使用窗口管理服务WindowManager,电源相关操作将使用电源管理服务PowerManager,其他系统管理服务,像振动管理服务振动器。 systemservice为系统层提供了很多手机控制接口。

systemservice还是手机Android开发者需要了解的程序。了解这些接口的使用方式就可以方便的进行系统控制,获得系统各个服务的信息,而且不用需要了解这些接口的具体实现方式。

安卓系统中system+server是甚么能删除

安卓系统里的system server是系统预装的软件,安卓手机里的system server可以删除,但是删除会影响手机运行。
卸载手机的预装软件需要获得root权限。
获取root权限:手机USB连接电脑——点击USB连接手机——连接成功——手机助手——一键root。

⑤ 如何分析Android SystemServer Watchdog重启问题

[SOLUTION]

1. Watchdog目的是监控系统几个比较主要的service,如果超过一定时间没有反应,认为系统出错,会强制重
启Android.
2. Watchdog原理:
/Frameworks/base/services/java/com/android/server/Watchdog.java
a) 首先SystemServer中的watchdog线程会向android.server.ServerThread线程发送一个
MONITOR message,同时将mCompleted标志位置为false.

⑥ 转android SystemServer.java启动的服务有哪些

如下:

EntropyService:熵(shang)服务,用于产生随机数
PowerManagerService:电源管理服务
ActivityManagerService:最核心服务之一,Activity管理服务
TelephonyRegistry:电话服务,电话底层通知服务
PackageManagerService:程序包管理服务
AccountManagerService:联系人帐户管理服务
ContentService:内容提供器的服务,提供跨进程数据交换
LightsService:光感应传感器服务
BatteryService:电池服务,当电量不足时发广播
VibratorService:震动器服务
AlarmManagerService:闹钟服务
WindowManagerService:窗口管理服务
BluetoothService:蓝牙服务
InputMethodManagerService:输入法服务,打开关闭输入法
AccessibilityManagerService:辅助管理程序截获所有的用户输入,并根据这些输入给用户一些额外的反馈,起到辅助的效果,View的点击、焦点等事件分发管理服务
DevicePolicyManagerService:提供一些系统级别的设置及属性
StatusBarManagerService:状态栏管理服务
ClipboardService:粘贴板服务
NetworkManagementService:手机网络管理服务
TextServicesManagerService:
NetworkStatsService:手机网络状态服务
NetworkPolicyManagerService:
WifiP2pService:Wifi点对点直联服务
WifiService:WIFI服务
ConnectivityService:网络连接状态服务
ThrottleService:modem节流阀控制服务
MountService:磁盘加载服务,通常也mountd和vold服务结合
NotificationManagerService:通知管理服务,通常和StatusBarManagerService
DeviceStorageMonitorService:存储设备容量监听服务
LocationManagerService:位置管理服务
CountryDetectorService:检查当前用户所在的国家
SearchManagerService:搜索管理服务
DropBoxManagerService:系统日志文件管理服务(大部分程序错误信息)
WallpaperManagerService:壁纸管理服务
AudioService:AudioFlinger上层的封装的音量控制管理服务
UsbService:USB Host和device管理服务
UiModeManagerService:UI模式管理服务,监听车载、座机等场合下UI的变化
BackupManagerService:备份服务
AppWidgetService:应用桌面部件服务
RecognitionManagerService:身份识别服务
DiskStatsService:磁盘统计服务
SamplingProfilerService:性能统计服务
NetworkTimeUpdateService:网络时间更新服务

⑦ system server是什么难道罪魁祸首就是它

System Server是Android系统的核心,他在Dalvik虚拟机启动后立即开始初始化和运行。其它的系统服务在System Server进程的环境中运

⑧ android怎么调用系统服务

1、Started
Started的Service,通过在Application里用startService(Intent intent)方法来启动。这种类型的Service一经启动,会在后面无休止地运行,即使启动它的Activity被Destroy掉。要停止此类型的Service,可在Service中调用stopSelf()或在Application中调用stopService(Intent intent),要不然就只能等Android系统在系统资源紧张的时候把它杀掉。

2、Bound

Bound的Service,通过在Application里调用bindService()方法来启动。该类型的Service与Application绑定在一起,一旦绑定的所有Application消失了,Android会Detroy掉该Service。也可以主动调用unbindService()方法来解绑Service。

有时候我们想在Activity中获知Service的状态,例如一个音乐播放器,Service负责音乐播放,Activity负责显示当前歌曲名和播放进度。
可以用Broadcast,这个也不失为一个解决方法。
但如果可以获取Service实例,那么就可以调用Service中自定义的一些方法来获取Service状态了。
首先要明确的是,第一种类型的Service是无能为力的。因为Activity与Service之间并没有相关联的接口,即使这个Service是在Activity里start的,一旦start,两者不再有关联。

⑨ 安卓系统里面的system server可以卸载吗

安卓手机里的system server 可以删除。
安卓系统里的system server是系统预装的软件,删除会影响手机运行。
卸载手机的预装软件需要获得root权限。
手机USB连接电脑-----点击USB连接手机----连接成功----手机助手----一键ROOT。

⑩ systemserver是什么软件

SystemServer 是 Android JAVA 层的系统服务模块,这个模块主要功能就是管理供Android 应用开发的 system service.
1. 它首先指定 SystemServer 进程的参数 ;
2. 根据指定的参数来创建 SystemServer 进程;
3. 调用 handleSystemServerProcess 启动第一步指定进程参数过程中指定的类,此时为“com.android.server.SystemServer ” ,启动的这个进程在 ps 查看后显示为” system_server ”。

希望你会采纳我的答案,很高兴为你解决问题,谢谢。

热点内容
跳转页源码 发布:2024-09-17 03:13:05 浏览:543
html文件上传表单 发布:2024-09-17 03:08:02 浏览:784
聊天软件编程 发布:2024-09-17 03:00:07 浏览:726
linuxoracle安装路径 发布:2024-09-17 01:57:29 浏览:688
两个安卓手机照片怎么同步 发布:2024-09-17 01:51:53 浏览:207
cf编译后没有黑框跳出来 发布:2024-09-17 01:46:54 浏览:249
安卓怎么禁用应用读取列表 发布:2024-09-17 01:46:45 浏览:524
win10设密码在哪里 发布:2024-09-17 01:33:32 浏览:662
情逢敌手迅雷下载ftp 发布:2024-09-17 01:32:35 浏览:337
安卓如何让软件按照步骤自动运行 发布:2024-09-17 01:28:27 浏览:197