转android SystemServer.java启动的服务都有哪些
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转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:网络时间更新服务 参考技术A 大家好, 讨论一个问题哈,我现在是基于android源代码开发 的,想在框架...
答:照葫芦画瓢呗,你看看framework/base/services/java/com/android/server/下的例子。一般一个server由xxxxService.java xxxxManager.java IxxxxManager.aidl组成。Manager和aidl在frameworks/base/core/java/android/。如果是要系统启动时就运行...本回答被提问者和网友采纳
Android 封装工具类DensityUtil(dp转pxpx转dp)
封装工具类DensityUtil代码:
public class DensityUtil {
public static float RATIO = 0.95F;//缩放比例值
/**
* px 转 dp【按照一定的比例】*/
public static int px2dipRatio(Context context, float pxValue) {
float scale = getScreenDendity(context) * RATIO;
return (int)((pxValue / scale) + 0.5f);
}
/**
* dp转px【按照一定的比例】*/
public static int dip2pxRatio(Context context, float dpValue) {
float scale = getScreenDendity(context) * RATIO;
return (int)((dpValue * scale) + 0.5f);
}
/**
* px 转 dp
* 48px - 16dp
* 50px - 17dp*/
public static int px2dip(Context context, float pxValue) {
float scale = getScreenDendity(context);
return (int)((pxValue / scale) + 0.5f);
}
/**
* dp转px
* 16dp - 48px
* 17dp - 51px*/
public static int dip2px(Context context, float dpValue) {
float scale = getScreenDendity(context);
return (int)((dpValue * scale) + 0.5f);
}
/**获取屏幕的宽度(像素)*/
public static int getScreenWidth(Context context) {
return context.getResources().getDisplayMetrics().widthPixels;//1080
}
/**获取屏幕的宽度(dp)*/
public static int getScreenWidthDp(Context context) {
float scale = getScreenDendity(context);
return (int)(context.getResources().getDisplayMetrics().widthPixels / scale);//360
}
/**获取屏幕的高度(像素)*/
public static int getScreenHeight(Context context) {
return context.getResources().getDisplayMetrics().heightPixels;//1776
}
/**获取屏幕的高度(像素)*/
public static int getScreenHeightDp(Context context) {
float scale = getScreenDendity(context);
return (int)(context.getResources().getDisplayMetrics().heightPixels / scale);//592
}
/**屏幕密度比例*/
public static float getScreenDendity(Context context){
return context.getResources().getDisplayMetrics().density;//3
}
/**获取状态栏的高度 72px
* http://www.2cto.com/kf/201501/374049.html*/
public static int getStatusBarHeight(Context context) {
int statusHeight = -1;
try {
Class<?> aClass = Class.forName("com.android.internal.R$dimen");
Object object = aClass.newInstance();
int height = Integer.parseInt(aClass.getField("status_bar_height").get(object).toString());
statusHeight = context.getResources().getDimensionPixelSize(height);
} catch (Exception e) {
e.printStackTrace();
}
return statusHeight;
//依赖于WMS(窗口管理服务的回调)【不建议使用】
/*Rect outRect = new Rect();
((Activity)context).getWindow().getDecorView().getWindowVisibleDisplayFrame(outRect);
return outRect.top;*/
}
/**
* 指定机型(displayMetrics.xdpi)下dp转px
* 18dp - 50px*/
public static int dpToPx(Context context, int dp) {
return Math.round(((float)dp * getPixelScaleFactor(context)));
}
/**
* 指定机型(displayMetrics.xdpi)下px 转 dp
* 50px - 18dp*/
public static int pxToDp(Context context, int px) {
return Math.round(((float)px / getPixelScaleFactor(context)));
}
/**获取水平方向的dpi的密度比例值
* 2.7653186*/
public static float getPixelScaleFactor(Context context) {
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
return (displayMetrics.xdpi / 160.0f);
}
/**
* dp转px
*
* @param context
* @param dpVal
* @return
*/
public static int dp2px(Context context, float dpVal) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
dpVal, context.getResources().getDisplayMetrics());
}
}
以上是关于转android SystemServer.java启动的服务都有哪些的主要内容,如果未能解决你的问题,请参考以下文章