Android 积累
2015-10-29 15:55
405 查看
1. 获取Tele Service并获取当前手机是否处于来电状态(FW层)
TelecomManager telecomManager = getTelecommService(); if (telecomManager != null && telecomManager.isRinging()) { Log.i(TAG, "Ignoring HOME; there's a ringing incoming call."); return -1; }
2. 两种获取屏幕分辨率信息的方法:
DisplayMetrics metrics = new DisplayMetrics(); Display display = activity.getWindowManager().getDefaultDisplay(); display.getMetrics(metrics);
//这里得到的像素值是设备独立像素dp
//DisplayMetrics metrics=activity.getResources().getDisplayMetrics(); 这样获得的参数信息不正确,不要使用这种方式。
不能使用android.content.res.Resources.getSystem().getDisplayMetrics()。这个得到的宽和高是空的。
private void initResolutionStr(Context context) { if (ApiConfig.getResolutionStr() == null || ApiConfig.getResolutionStr().equals("")) { WindowManager winMgr = (WindowManager) context.getApplicationContext().getSystemService(Context.WINDOW_SERVICE); Display display = winMgr.getDefaultDisplay(); int height = display.getHeight(); int width = display.getWidth(); String resolution = height > width ? height + "x" + width : width + "x" + height; ApiConfig.setResolutionStr(resolution); // densityDpi = 120dpi is ldpi, densityDpi = 160dpi is mdpi, // densityDpi = 240dpi is hdpi, densityDpi = 320dpi is xhdpi DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int densityDpi = dm.densityDpi; ApiConfig.setDensityDpi(densityDpi); } }
3. Android permission 相关
//This file describes all permissions defined by Android frameworkframeworks/base/core/res/AndroidManifest.xml
//This file defines all Linux groups related to permission
frameworks/base/data/etc/platform.xml
//Define GID for Linux groups
/system/core/include/private/android_filesystem_config.h
The command to dump system permissions
adb shell pm list permissions
Share UID
为了减少运行进程的数量,方便应用间共享数据。可以让多个APP运行在相同的UID中步骤:
1. Add “android:shareUserId” attribute in AndroidManifest.xml.
2. Sign all applications sharing the UID with the same certificate.
3. Note that shared UID applications will share all permissions.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.demo" android:sharedUserId="android.uid.system">
Notice:
1. 滥用无法获得的permission,有机会导致UID的所有APP的这个permission都会被revoke。即使这个权限其他的APP已经grant
例子:
package A 和package B共享UID。都声明了permission P。package A可以获得这个权限,但是package B不可以。PackageManager会revoke UID的permission P。
2. 不要共享system UID
相关文章推荐
- (小知识点)android 获取json语句中数组的某一个值
- android用户界面之ProgressBar教程实例汇总
- 7种形式的Android Dialog使用举例
- Android minHeight/Width,maxHeight/Width
- Android onClick
- Android 项目实践(六)——开机动画的实现
- Android开源框架Universal-Image-Loader详解
- Android:解决打开activity之后 屏幕初始位置不是顶部问题
- android 优化内存溢出之三
- Android GridView(九宫图)
- Android SurfaceTexture
- Android成长之路-布局详解
- Android Menu的overflow在不同版本上的控制显示
- Android 搭建系统服务
- Android padding和margin的区别
- Android源码下载遇到的问题
- Android 数据解析格式和JSON对象
- android音乐播放器监听电话状态,解决通话中的音乐的播放
- Android Studio 如何设置编码方式
- Android ViewDragHelper实现QQ侧滑边栏