-
从源码根目录给每个仓库建立branch命令:
repo start 分支名 --all -
查看提交记录(单行显示):
git log --oneline
library -
撤销节点之后的所有提交:
git reset --hard _______ -
搜索(不区分大小写):
grep -rn "___" * -
MTKLogger暗码 :
##3646633## -
导出Log的命令:
adb pull sdcard/mtklog ./文件名 -
用于删除编译出来的.o之类的文件 :
git clean -xfd (或) git clean -f -
录制屏幕命令(保存在sdcard/中):
adb shell screenrecord /sdcard/test.mp4 -
搜索相关字样的进程:
ps -aux | grep -ri _____ -
Android studio 主题下载网址:
http://color-themes.com/ -
自学android资料库:
https://123.w3cschool.cn/navandroid_study -
手机插线不充电:
adb shell dumpsys battery unplug -
查看IMEI号 : *#06#
-
CTS测试环境下载:
https://source.android.com/compatibility/cts/downloads -
查看手机当前进程:
adb shell ps | grep ____ -
git完全教程:
http://www.yiibai.com/git/ -
单跑某个模块Monkey:
adb shell monkey -p 包名 --throttle 500 -v 99999 -
svn 更新文件:
svn up 或 svn update -
svn 提交文件:
1.进入到最近的目录;
2.svn add + 文件名;
3.svn commit + 文件名 + -m "备注信息" -
修改文件夹权限 :
sudo chmod -R 777 * -
windows系统查看对方共享目录:
运行 > \ip地址 > Enter -
获取手机内部存储的路径:
Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "***"
-
打开Log的指令:
adb shell am start com.qualcomm.qti.logkit/.cActivity -
查看手机属性:
adb shell getprop (ro.build.type的值显示什么版本) -
修改屏幕分辨率指令:
adb shell wm size 1080x1920 -
将Jar包导入Android Studio bu步骤 :
(1) 将jar包拷贝到app > libs 下(没有libs就新建)
(2) 右键该jar包,选择Add as library
(3) OK -
git完全教程:http://www.yiibai.com/git/
-
Android系统的分区:
boot: 用于系统启动的分区,主要包括kernel和ramdisk。主要用于挂载System和其他分区,并加载System分区的代码。没有该分区,手机无法启动;
system:该分区包含除了kernel和ramdisk之外的系统应用程序和库文件;正常操作情况下,该分区是只读状态。
recovery: 用于系统升级打补丁,包含了一个完整的Linux操作系统和一个特殊的recorvery包。FOTA升级时,下载完更新包后,进入recovery模式,recovery程序会读更新包,然后将各个patch应用到各个分区;
misc:升级时,recovery用于存储相关信息的小分区;
data:主要包含了用户的数据,如联系人、短信、设置以及安装的应用。清除该分区等同于将手机重置,OTA不会影响该分区;
cache:用于存放需要经常访问使用的数据和应用组件,访问该分区需要特殊的应用程序权限;OTA升级时下载的升级包就位于该分区;
-
获取按键键值:
adb shell
getevent -ltr -
在手机charging模式时,Linux识别不到手机端口,此时需要配置51-android.rules文件,方法:
(1)连接手机,命令:lsusb,找到手机的端口ID;
(2)打开 文件系统-etc-udev-51-android.rules 文件(需要sudo权限);
(3)按照次序填好端口ID,例如:SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", ATTR{idProduct}=="9020", MODE="0666", OWNER="gsoft2-3";
(4)重新插拔手机,就能找到端口了。 -
当debug版本remount不上,显示报错:
remount of /system failed: Read-only file system
remount failed
使用命令:adb disable-verity 执行一下重启 -
查看系统属性:
adb root;adb remount;adb shell
getprop (对应的string)
或者:adb pull /system/build.prop . 将整个系统属性文件pull出来
或者:/out/target/product/***/system/build.prop 直接查看 -
不支持分屏的方案:
一般在onResume()方法中添加:
if (isInMultiWindowMode()){
super.onResume();
Log.v(TAG, "onResume: Don't support split screen !");
Toast.makeText(this, getString(R.string.dock_non_resizeble_failed_to_dock_text), Toast.LENGTH_SHORT).show();
finish();
return;
}
- 获取别的应用的字串:
Context ctx = null;
try {
ctx = getContext().createPackageContext("com.android.systemui",
Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY);
} catch (Exception e) {
Log.w(TAG, "name not found " + e);
}
if (ctx != null ){
int resId = -1;
resId = ctx.getResources().getIdentifier(
"dock_non_resizeble_failed_to_dock_text", "string",
ctx.getPackageName());
Toast.makeText(this, ctx.getResources().getString(resId), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, getString(R.string.dock_non_resizeble_failed_to_dock_text), Toast.LENGTH_SHORT).show();
}
}
-
打 Patch命令:
- 将patch 文件放在模块根目录;
- git apply ***.patch --reject;
- 如有冲突,会有.rej文件生成,根据.rej文件,手动合入
-
将某笔提交打成patch包指令: git format-patch commit_previous..commit
-
打印代码的堆栈信息:
RuntimeException e = new RuntimeException("here");
e.fillInStackTrace();
Log.i("xlq", "Exception", e);
-
用命令启动某个Activity:
adb shell am start -n packageName/className; -
androidMVC框架和MVVM,MVP对比介绍:
https://juejin.im/post/58f460b18d6d810057b75bbb -
android Rxjava2的学习:
https://www.jianshu.com/p/464fa025229e -
android常用的15个框架
https://blog.csdn.net/congmingyizhiha/article/details/70011020 -
获取手机activity的启动event:
adb logcat -b events -
四种启动模式:
standard:默认启动,每次启动都会新建一个实例,位于栈顶;
适用场景:普通Activity;
singleTop:栈顶复用,如果要启动的activity处于栈顶,则不用重新创建,直接复用,走onNewIntent()方法,不走onCreate() 和 onStart(),否则和standard一样;
适用场景:点击Notification启动的页面;
singleTask:栈内复用,如果栈内有,直接复用,并且将其置于栈顶,将上方其他的activity pop出栈;走onNewIntent()方法,不走onCreate() 和 onStart();
适用场景:适用于浏览器主界面,多个应用启动浏览器,都只创建第一次,其他都走Activity的onNewIntent()方法。 或者适用于其他应用程序的入口;
SingleInstance:全局单例模式,基本与singleTask一样,区别在于,activity只能单独位于一个任务栈中。(比较特殊,用得少)
适用场景:完全独立的,类似闹钟的提示
网友评论