设置模块
1.settings为入口,该DashboardSummary.java作为显示系统设置,在onresume()时通过动态建立设置选项,选项的内容来自settingsActivity中。当设备的屏幕比较大的时候,就显示在左边,当尺寸比较小的时候全屏显示该fragment。(由布局文件决定)。
2.每个activity(也就是置的每个选项的类)继承SettingsActivity,使用PreferenceScreen作为列表显示,在xml使用preferenceHeader控件,作为一级界面,以列表的形式显示选项,并且在该activity或者是fragment中处理点击逻辑,如:界面的跳转,使用preferenceFragment实现显示第二级界面,。
3.每个功能模块入口的类应该是:功能名字+Settings。那么每个功能模块的都是继承preferenceFragment。
蓝牙
每次读取的模式,结果都是false,那么就没有显示下面的扫描设置1
2
3final ContentResolver resolver = getActivity().getContentResolver();
final boolean bleScanningMode = Settings.Global.getInt(
resolver, Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE, 0) == 1;
取出的值是0, 0 == 1?
2016-07-27
storage assess framework (ASF)存储访问框架:
是google提供的文件浏览访问框架,统一UI效果。
闹钟设置,在响闹铃之后,再设置铃声,那么这个算是另外再设置一个铃声,而不是当前的铃声,那么该闹铃也当然是停止,其他手机厂商也是这样的。
大字体,在布局上面显得窄,那么久可以稍微增加一下间距。
分屏的提示文字,这个可以直接进行修改,但是..还没找到什么时候出现分屏的提示,这个需要探索一下
2016-07-28
lock_to_app_toast 固定显示后,点击返回键的toast
screen_pinning_description 一开始固定屏幕的引导提示
2016-08-04
手机中的宏定义,文件位置system/build.prop,权限:644
2016-08-12
单编不产生odex文件,在Android.mk中添加:LOCAL_DEX_PREOPT := false
2016-08-18
retropfit okhttp volley
2016-08-19
dragger2
通过inject实现实例与构造函数的关联,
通过Component实现参数的关联,
通过model实现参数的初始化关联,
通过provide实现参数的关联。
2016-08-22
XDA lumia 525 Android 6.0 !!!!
####2016-09-01
add by yangfujin@wind-mobi.com on 2016-09-01 for bug 129593 end
user版:
需要添加GMS包,GMS包版本询问开发经理。
GMS包添加到vender目录下
编译之前需要clean一次
source quick_build.sh ;wind_lunch E189_ctc user new ;make BUILD_GMS=yes -j24 2>&1 | tee build.log
2016-09-13
####2016-09-23
1.判断铃声是否有效:RingManager.validRingtoneUri
2016-09-25
1.查看端口占用(5037 adb调试端口):1
netstat -ano | findstr "5037"
2.查看全部的进程1
tasklist
3.杀指定的进程pid1
tskill pid
2016-09-27
1.adnroid.os.SystemProperties
如果属性名称以“ro.”开头,那么这个属性被视为只读属性。一旦设置,属性值不能改变。
如果属性名称以“persist.”开头,当设置这个属性时,其值也将写入/data/property。
2016-09-29
1.查看设备的屏幕分辨率:adb shell wm size
2016-10-13
1.使用 android.os.SystemProperties.set()方法保存系统属性,应用清单文件中需要声明1
android:sharedUserId="android.uid.system"
否则不能进行保存,或者是保存了几秒,又恢复原来的属性值了。
2016-10-19
1.发版本:GMS + OTA1
make BUILD_GMS=yes -j32 2>&1 | tee build.log && make BUILD_GMS=yes -j32 otapackage
2016-10-20
1.快速编译system.img,可以使用这个命令:
1
2make systemimage
make snode 快速打包
2.快速编译boot.img,可以使用以下命令:
1
make bootimage
3.快速编译userdata.img,可以使用以下命令:
1
make userdataimage-nodeps
2016-11-12
1.启动一个activity:1
2$ adb shell am start -n "com.example.dashboard/com.example.dashboard.MainActivity" -a
android.intent.action.MAIN -c android.intent.category.LAUNCHER
2.查看设备信息(序列号、当前连接wifi密码等):adb shell cat /data/misc/wifi/*.conf
3.发送广播:am broadcast -a <广播动作> , am broadcast -a com.smz.mybroadcast
2016-11-14
1.打开mtklog: ##3646633##
2.录屏:1
adb shell screenrecord /sdcard/demo.mp4
这条命令相当于按了设备的Backkey键1
adb shell input keyevent 4
可以解锁屏幕1
adb shell input keyevent 82
在屏幕上做划屏操作,前四个数为坐标点,后面是滑动的时间(单位毫秒)1
adb shell input swipe 50 250 250 250 500
在屏幕上点击坐标点x=50 y=250的位置。1
adb shell input tap 50 250
输入字符abc1
adb shell input text abc
2016-11-22
1.定位模式:高精度模式(通过gps、无线网络、移动网络、蓝牙进行定位)、节电模式(通过无线网络、移动网络、蓝牙进行定位),仅限设备(通过GPS进行定位)
在小部件上用上述三种模式的切换,再点击一下是关闭
2016-12-06
1.获取当前运行的activity1
adb shell dumpsys activity top
2016-12-07
是用adb命令时,经常出现ADB server didn’t ACK这种错误,主要原因是adb端口号被占用,可以通过以下方法找到是什么应用占用了端口号
1、当通过CMD启动adb服务。这个时候会提示启动失败“ADB server didn’t ACK”。服务启动失败的原因有很多,一般是端口绑定失败。
2、在cmd中输入adb nodaemon server查看端口绑定信息,一般会报cannot bind ‘tcp:5037’
3、查看是什么占用了端口,在cmd中输入netstat -ano | findstr “5037” 就可以看出
4.输入命令:tasklist /fi “pid eq 784” 查找出是因为sjk_daemon.exe占用了该端口
最后利用任务管理器杀掉该任务即可
2016-12-08
1.查看进程的内存空间:1
adb shell dumpsys meminfo -a com.android.launcher3
2016-12-15
1.截图命令1
adb shell /system/bin/screencap -p /sdcard/screen.png
2016-12-18
1.更新了系统中公共方法,需要更新api1
make update-api
实际上不需要更新API,我们只是内部使用,又不是SDK,所以一般通过添加注解就可以了:@hide
2016-12-22
1.获取控件显示的宽高1
2int[] location = new int[2];
v.getLocationOnScreen(location);
2017-03-27
framework 中隐藏输入法,若显示了1
2
3
4
5
6
7InputMethodManagerInternal inputMethodManagerInternal =
LocalServices.getService(InputMethodManagerInternal.class);
if (inputMethodManagerInternal != null) {
// Hide the current IME to avoid problems with animations from IME adjustment when
// attaching the docked stack.
inputMethodManagerInternal.hideCurrentInputMethod();
}
2017-05-15
多用户Tag1
2
3
4
5ActivityManager: Starting userid:0 fg:true
ActivityManager: User switch timeout: from 10 to 0
ActivityManager: Continue user switch oldUser #10, newUser #0
BroadcastQueue: Timeout of broadcast BroadcastRecord{cd49af6 u-1 android.intent.action.USER_STARTING} - receiver=android.app.LoadedApk$ReceiverDispatcher$InnerReceiver@54b90a1, started 60001ms ago
2017-06-15
获取当前显示的布局1
adb shell uiautomator dump && adb pull /sdcard/window_dump.xml
2018-04-05
获取应用的启动activity
输入命令,点击待测应用
1
adb logcat|grep START
直接使用apk
1
aapt dump bading apk路径
1
adb shell monkey -p 包名 -v -v -v 1
2018-07-24
编译
LOCAL_JAVA_LIBRARIES所指定的为android系统使用的dex类库;
而LOCAL_STATIC_JAVA_LIBRARIES变量所指定的则是.class文件打包而成的JAR文件:即静态JAVA库。
2018-08-18
加速gradl 构建速度‘
在c:/1
2
3org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.configureondaemon=true