android adb常用命令:
启动服务:adb shell am startservice com.loader/com.main.ForegroundService
查看jobservice:adb shell dumpsys jobscheduler | grep xxxx
禁止USB充电:adb shell dumpsys battery unplug
查看电池:adb shell dumpsys battery
adb shell dumpsys deviceidle enable
adb shell dumpsys deviceidle force-idle
adb shell dumpsys deviceidle disable
智能电视的启动Activity属性:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
Android高版本ps无法查看运行的进程:
adb shell ps -A
查看activity:
dumpsys activity
so库对AS和模拟器的支持
Android stuido中的模拟器为了提高运行速度,使用了x86架构优化后的android系统,如果我们开发的程序中包含so库,为了支持as调试和使用第三方模拟器(比如国内使用最多的雷电模拟器),编译so时,需要支持两种架构x86和x86_64,编译时abiFilters参数需要如下设置:
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "x86_64","mips","arm64-v8a"
}
public static final String CATEGORY_HOME = “android.intent.category.HOME”;
android日志输出命令:
ERROR等级:adb logcat *:E >d:\1.txt
WARNING等级:adb logcat *:W >d:\1.txt
sharedUserId属性:
AndroidManifest.xml 的 manifest 标记中使用 sharedUserId 属性,为它们分配相同的用户 ID。
请注意,为保持安全性,只有两个签署了相同签名,并且请求相同的 sharedUserId的应用才被分配同一用户 ID,两个软件包将被视为同一个应用,具有相同的用户 ID 和文件权限。
获得system用户权限,需要以下步骤:
- 在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"这个属性。
- 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
- 使用mm命令来编译,生成的apk就有修改系统时间的权限了
linux uid的计算:
app的uid/100000的结果为userid,填到ux的x处。
app的uid减去10000为appid,填到axx的xx处。
例如某个app的uid是10022,userid为10022/100000=0,appid为10022-10000=22,则那么最终通过ps打印得到uid字串就是:u0_a22。u10_axxx就是多用户下的进程。多用户下,第一个用户是10000,第二个是1000000,第三个是10000000。
linux文件常见属性:
b就是block
d就是directory
l就是link
lrw-r–r-- 1 root root 21 2018-11-08 17:12 sdcard -> /storage/self/primary
java类初始化顺序:
1 static 和final变量
2 static 构造方法
3 普通构造方法construtorh方法
android服务看如下两篇文章:
点击查看android service例子
点击查看android service例子
android JobService详细说明:
android JobService详细说明: