赞
踩
由于AndroidQ上BSP可以单独编译,因此,在bsp目录下执行source,lunch之后,可以单独编译ko模块,命令如下:
make modules –m synaptics_dsx_td4310.ko
adb shell ---->进入到进入模拟器的shell模式
ums9230_1h10_go:/ # settings get global(数据库名) cast_mode(字段) //从数据库中得到数据
ums9230_1h10_go:/ # settings put global(数据库名) multidisplay_info(字段) unisoc(值) //向数据库中插入数据
补充:
* SettingsProvider对数据进行了分类,分别是Global、System、Secure三种类型,它们的区别如下:
* Global:所有的偏好设置对系统的所有用户公开,第三方APP有读没有写的权限;
* System:包含各种各样的用户偏好系统设置;
* Secure:安全性的用户偏好系统设置,第三方APP有读没有写的权限。
adb shell am broadcast -a android.media.action.HDMI_AUDIO_PLUG --ei android.media.extra.AUDIO_PLUG_STATE 1 //发送广播,并且附带数据状态值为1.
adb shell am broadcast -a android.media.action.HDMI_AUDIO_PLUG --ei android.media.extra.AUDIO_PLUG_STATE 0 //发送广播,并且附带数据状态值为0.
adb shell am broadcast 后面的参数有:
<INTENT> specifications include these flags and arguments:
[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--esn <EXTRA_KEY> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[--el <EXTRA_KEY> <EXTRA_LONG_VALUE> ...]
[--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE> ...]
[--eu <EXTRA_KEY> <EXTRA_URI_VALUE> ...]
[--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>]
[--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]
(mutiple extras passed as Integer[])
[--eial <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]
(mutiple extras passed as List<Integer>)
[--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]
(mutiple extras passed as Long[])
[--elal <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]
(mutiple extras passed as List<Long>)
[--efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]]
(mutiple extras passed as Float[])
[--efal <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]]
(mutiple extras passed as List<Float>)
[--esa <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]
(mutiple extras passed as String[]; to embed a comma into a string,
escape it using "\,")
[--esal <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]
(mutiple extras passed as List<String>; to embed a comma into a string,
escape it using "\,")
[--f <FLAG>]
[--grant-read-uri-permission] [--grant-write-uri-permission]
[--grant-persistable-uri-permission] [--grant-prefix-uri-permission]
[--debug-log-resolution] [--exclude-stopped-packages]
[--include-stopped-packages]
[--activity-brought-to-front] [--activity-clear-top]
[--activity-clear-when-task-reset] [--activity-exclude-from-recents]
[--activity-launched-from-history] [--activity-multiple-task]
[--activity-no-animation] [--activity-no-history]
[--activity-no-user-action] [--activity-previous-is-top]
[--activity-reorder-to-front] [--activity-reset-task-if-needed]
[--activity-single-top] [--activity-clear-task]
[--activity-task-on-home]
[--receiver-registered-only] [--receiver-replace-pending]
[--receiver-foreground]
[--selector]
[<URI> | <PACKAGE> | <COMPONENT>]
例1:
adb shell am broadcast -a com.android.test --es test_string "this is test string" --ei test_int 100 --ez test_boolean true
说明:--es 表示使用字符串类型参数 --ei 表示int类型参数 --ez 表示boolean类型参数 蓝色为key,红色为value
以下是FW修改 framework下面的代码,方便快速放到手机进行调试的方法。
这种push的方法需要保证我们的手机的版本和本地代码相匹配(如果本地代码很久没有更新,手机使用了新的pac,有可能会发生系统服务运行crash)
Android 11& 12执行make framework-minus-apex可以编译出framework.jar (Android10及其之前使用 make framework)。services.jar 编译命令依然是make services
service push目录
adb push $OUT/system/framework/services.jar* system/framework/;
adb push $OUT/system/framework/oat/arm/services.* system/framework/oat/arm/;
adb push $OUT/system/framework/oat/arm64/services.* system/framework/oat/arm64/
framework push目录
adb push $OUT/system/framework/framework.jar system/framework/;
adb push $OUT/system/framework/boot-* system/framework/;
adb push $OUT/system/framework/arm/boot-* system/framework/arm/;
adb push $OUT/system/framework/arm64/boot-* system/framework/arm64/
如果在修改时发现修改错误,而要放弃本地修改时,
一,未使用 git add 缓存代码时。
可以使用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。放弃所有的文件修改可以使用 git checkout . 命令。
此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。
二,已经使用了 git add 缓存了代码。
可以使用 git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃所以的缓存可以使用 git reset HEAD . 命令。
此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。
三,已经用 git commit 提交了代码。
可以使用 git reset --hard HEAD^ 来回退到上一次commit的状态。此命令可以用来回退到任意版本:git reset --hard commitid
你可以使用 git log 命令来查看git的提交历史。git log 的输出如下,可以看到第一行就是 commitid:
# 删除 untracked files
git clean -f
# 删除指定路径下的没有被track过的文件
git clean -f <path>
git clean -f packages/SystemUI/res-unisoc/layout/display_dialog_activity.xml
# 连 untracked 的目录也一起删掉
git clean -fd
# 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
# 在用上述 git clean 前,强烈建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd
# 删除文件
git rm test.txt
问题:当前GIT库三个提交,希望把最近的两个提交合并为一个提交。
git reset --soft HEAD^
git commit --amend
git reset
reset(重置) 的本质:移动 HEAD 以及它所指向的 branch
git reset --soft HEAD^,git reset --hard HEAD^和git reset --mixed的区别
--hard 会清空工作目录和暂存区的改动,而 --soft则会保留工作目录的内容,并把因为保留工作目录内容所带来的新的文件差异放进暂存区。
reset 不加参数(mixed):保留工作目录,并清空暂存区.把所有差异都混合(mixed)放在工作目录中.
1.用adb shell dumpsys meminfo package name看看当前进程的内存使用情况
2.可以在adb shell里输入getevent -ltr 这个可以看到Input上报的事件
3.adb shell pm clear com.android.wallpaper命令清除其数据
4.
adb shell dumpsys wallpaper > wallpaper.txt
adb shell dumpsys SurfaceFlinger > surfaceflinger.txt
adb shell dumpsys window windows > window.txt
5.android如何判断手机CPU是32位还是64位的?
adb shell getprop ro.product.cpu.abi
C:\Users\ruya.zhao>adb shell getprop ro.product.cpu.abi
arm64-v8a
6.获得所有进程的列表
要获得所有进程的列表,可以执行命令 ps -ef(POSIX 风格)或 ps ax(BSD 风格)。进程名有方括号的是内核级的进程,执行辅助功能(比如将缓存写入到磁盘);所有其他进程都是使用者进程。您会注意到,就算是在您新安装的(最小化的)系统中,也会有很多进程在运行。熟悉它们,并把它们记录到文档中。
7.使用命令进入Settings
adb shell am start com.android.settings
1.repo sync 全部
2.回退到2022-08-25 20:00 ;
3.执行repo manifest -r -o mymanifest2000.xml
4.make ; cp_sign; makepac; 生成pac
5.导出pac、mymanifest2000.xml
//正确的命令
//正常会有如下流程
本地整编后打包pac
$make
按照提示执行命令
$make
$cp_sign
$makepac // pac在out/xx/cp_sign/.pac
D:\软件\adb tools>adb shell
s9863a1h10:/ # logcat | grep "SurfaceFlinger"
多个筛选条件
logcat | grep -e aaa -e bbb -e ccc
logcat -s ruya ruya2 ruya3
D:\软件\adb tools>adb shell
s9863a1h10:/ # logcat | grep -e WindowManager -e SurfaceFlinger
logcat | grep -e WindowManager -e SurfaceFlinger
//打印出Native Crash的 log
adb shell logcat -v time | grep "Native Crash"
手动dump heap
adb shell am dumpheap pid >out.hprof
查看events.log中的ams log
adb logcat -b events | grep am_
查看kernel.log
C:\Users\ruya.zhao>adb shell
uis7862a_1h10:/ # logcat -b kernel
模拟菜单键事件
adb shell input keyevent 82模拟菜单键事件
如何打Trace
Log.d(TAG,Log.getStackTraceString(new Throwable()));
git diff > 1613716.diff
跳转到相同目录执行下面命令,git apply 1613716.diff
Android 禁用滑动到底的特效:overScrollMode=never
AndroidQ
1)$mkdir Android10_trunk_19c_rls1:第一次要新建文件夹Android10_trunk_19c_rls1
2)$cd Android10_trunk_19c_rls1
3)$repo init -u ssh://gitadmin@gitmirror.spreadtrum.com/platform/manifest.git -b sprdroid10_trunk_19c_rls1
4)$repo sync -cdq -j30 或者 $repo sync -cdq -j8(全拉)
首先打开源码目录下的.repo目录,打开manifest.xml,里面是一个子项目列表,针对不同种类的仓库进行一个总的分类,若是查看系统应用的仓库名,可以前往system文件夹下的default.xml文件查看
<!-- Include system component repos -->
<include name="system/default.xml" />
<!-- Include common repos -->
<include name="common/default.xml" />
<!-- Include vendor component repos -->
<include name="vendor/default.xml" />
<!-- Include unisoc_bin.xml -->
<include name="unisoc_bin.xml" />
.repo\manifests\system\default.xml,若是查看AOSP的仓库名,则前往system文件夹下的aosp.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- Include aosp.xml -->
<include name="system/aosp.xml" />
<!-- Include carriers.xml -->
<include name="system/carriers.xml" />
<include name="system/common.xml" />
<!-- Include lego.xml -->
<include name="system/lego.xml" />
<!-- Include partner.xml -->
<include name="system/partner.xml" />
<!-- Include vendor_app.xml -->
<include name="system/vendor_app.xml" />
</manifest>
找到需要同步的子仓库,例如launcher3
<project name="platform/packages/apps/Launcher3" path="packages/apps/Launcher3" groups="pdk-fs"/>
执行以下命令同步该代码库
repo sync platform/packages/apps/Launcher3
在开发中要用到很多的图片,其实我们可以直接使用android sdk自带的图片,有大量供你选择,而且都有不同大小的图片来适应分辨率,很方便。
那么如何获取到这些图片呢?
在我的电脑上,路径是
/home/ruya.zhao/Android/Sdk/platforms/android-30/data/res/drawable-ldpi(Ubuntu) 或者 E:\Android\Sdk\platforms\android-30\data\res\drawable-ldpi(Windows)
即路径为Sdk/platforms/android-30/data/res/drawable-ldpi
Java中,String类下的isEmpty( )返回的只是字符串的长度是否为0,如果字符串为null就会直接报空指针。
源码如下:
public boolean isEmpty() {
return count == 0;
}
android中,TextUtils.isEmpty(要判断的字符串)会对null和长度进行判断,所以不会报空指针。
源码如下:
public static boolean isEmpty(@Nullable CharSequence str) {
if (str == null || str.length() == 0) {
return true;
} else {
return false;
}
}
切HD: adb shell wm size 720x1440
adb shell wm density 408
切HD+: adb shell wm size 1080x2160
adb shell wm density 480
adb shell screenrecord data/1.mp4
adb pull data/1.mp4
从手机中pull出来手机录屏的视频
adb pull /storage/emulated/0/Movies/screen-20210305-023328.mp4 d:/films/3.mp4
adb shell screencap data/1.png
adb pull data/1.png d:/pictures/1.png
adb pull /storage/emulated/0/Pictures/Screenshots/Screenshot_20210429-165657.png d:/pictures/screenshot
D:\软件\adb tools>adb shell
s9863a1h10_go_32b:/ # cd data/data/com.android.launcher3/databases
cd data/data/com.android.launcher3/databases
s9863a1h10_go_32b:/data/data/com.android.launcher3/databases # ls
ls
app_icons.db launcher.db widgetpreviews.db
s9863a1h10_go_32b:/data/data/com.android.launcher3/databases # sqlite3 launcher.db
qlite3 launcher.db <
SQLite version 3.22.0 2019-09-03 18:36:11
Enter ".help" for usage hints.
sqlite> select * from favorites;
select * from favorites;
Q:Launcher3中怎么修改让横屏的时候Hotseat是在屏幕底部
A:把config.xml里的hotseat_transpose_layout_with_orientation设置为false
8.1之前
window 通过adb shell dumpsys activity | findstr “mFocus”
Linux 通过adb shell dumpsys activity | grep “mFocus”
8.1之后
window 通过adb shell dumpsys activity | findstr “mResume”
Linux 通过adb shell dumpsys activity | grep “mResume”
12之后
window 通过adb shell dumpsys activity | findstr “Resumed”
Linux 通过adb shell dumpsys activity | grep “mResume”
(1)查看当前Activity :adb shell “dumpsys window w | grep name=”
(2)查看当前栈顶的Activity :adb shell dumpsys activity | grep “mFocusedActivity”
(3)查看当前栈顶的Activity的Fragment :adb shell dumpsys activity your.package.name
我们可以通过以下指令来启动SecondaryDisplayLauncher预览界面:
A10
AOSP版本:
adb shell am start -n com.android.launcher3/com.android.launcher3.SecondaryDisplayLauncher
Pixel机器:
adb shell am start -n com.google.android.apps.nexuslauncher/com.android.launcher3.SecondaryDisplayLauncher
A11/A12
AOSP版本:
adb shell am start -n com.android.launcher3/com.android.launcher3.secondarydisplay.SecondaryDisplayLauncher
Pixel机器:
adb shell am start -n com.google.android.apps.nexuslauncher/com.android.launcher3.secondarydisplay.SecondaryDisplayLauncher
陀螺仪是测角速度的,G-Sensor是测重量加速度的,它是加速度计的一种。
G-sensor中文是加速度传感器的意思(英文全称是Accelerometer-sensor),它能够感知到加速力的变化,加速力就是当物体在加速过程中作用在物体上的力,比如晃动、跌落、上升、下降等各种移动变化都能被G-sensor转化为电信号
加速度传感器又叫G-sensor,返回x、y、z三轴的加速度数值。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。