记录jdk的命令行使用记录
javac
1.java命令行编译多个源文件
javac -d . Example1.java Example2.java
Example1是主类,要用到Exmaple2
执行:java com.example.Example1,执行时要加上完整包名
1.1java文件编译和打包为jar文件
下载了jmp123的文件,是代码源文件,树形解构的代码叶子目录有3个,每个下面都有java源文件,这种情况如何使用
javac命令进行打包。以下是3种方法,二和三未测试。
(1)分别编译
javac -d . jmp123/decoder/*.java
javac -d . jmp123/demo/*.java
javac -d . jmp123/output/*.java
(2)一起编译
javac -d . jmp123/decoder/*.java jmp123/demo/*.java jmp123/output/*.java
(3)将所有需要编译的java源文件路径放入一个文本文件,并命名,如1.txt
javac -d . @1.txt
2.java命令行编译使用外部jar包
javac -cp jdom.jar -d . IFlow.java NetworkUtil.java
执行:java -classpath jdom.jar; com.bu.qs.IFlow ;注意空格和分号;
3.java将类文件打成jar包
jar -cvf class.jar com\test\unityforandroid\*
class.jar表示生成的jar名字
*表示所有的class文件
4.警告:编码 GBK 的不可映射字符
由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。
解决办法是:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java
【参考自他人blog,感谢】
adb(android debug bridge)
I.ADB启动与关闭app
adb shell am start com.youtube.film/.pad.SplashActivity
adb shell am force-stop com.youtube.film
II.ADB安装卸载apk
xxx为举例,根据实际情况变通
adb install -r xxx.apk
-r是覆盖安装
adb install -t xxx.apk
debug签名需要-t参数安装
adb uninstall xxx
根据包名卸载app
III.adb logcat抓日志用法
有时候连接usb调试后,日志显示一下就消失了,最后有一个EOF类似的提示,目测是日志缓存满了,目前不是很确定。
adb logcat -G 3m
如果日志时有时无,不能稳定输出log,执行下
adb logcat -v time >~/log.txt
保存logcat日志到文件(迷茫的命令)
IV.adb查看设备的Android系统版本号和api level
adb shell getprop ro.build.version.release
adb shell getprop ro.build.version.sdk
V.根据包名查找启动activity
adb shell dumpsys package com.youtube.film
查找启动页面activity【
Activity Resolver Table:
Schemes:
youtube:
9e6fd2 com.youtube.film/.activity.UnitActivity filter 1731e69
Action: "android.intent.action.VIEW"
Action: "android.intent.action.MAIN"
Category: "android.intent.category.DEFAULT"
Category: "android.intent.category.BROWSABLE"
Category: "android.intent.category.LAUNCHER"
Scheme: "youtube"
Authority: "youtube.film.com": -1
AutoVerify=true
。。。
】
VI.查找前台运行的app当前activity页面
Windows
adb shell dumpsys window | findstr mCurrentFocus
Mac
adb shell dumpsys window | grep mCurrentFocus
参考
https://blog.csdn.net/wangluonanhai/article/details/122584545
VII.
根据V命令的执行结果,制定命令,结果字符串中要包含’/‘和’filter’,命令如下
adb shell dumpsys package com.yougtube.film | grep \/ |grep filter
这个命令如果在Windows中执行,将grep变为findstr即可
一般执行完VII命令,第一行结果就包含我们想要的app启动页面了,再执行如下命令即可启动app。
adb shell am start com.yougtube.film/.MainActivity
IX.adb修改Android系统时间
adb shell
date "2023-03-10"
date "17:41:09"
实际测试发现日期和时间需要分别设置否则不管用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)