说明:讨论研发,QA流程是否规范的 goto end
场景:java开发,公司QA在测试应用时,有时为点小问题加快速度测试(研发环境不方便测试),研发并不会重新tag送测而是直接给几个class给QA先验证下
麻烦一:QA需要手工备份原来的class并将新class替换原来的class。
麻烦二:研发需要将包路径告知QA,QA需要手工一个一个放,遇到class 较多时容易出错。
麻烦三:。。。。
工具实现的功能及方法:
1、javap反编译,结合grep/sed 获取到包路径。
2、完成class的备份及复制。
脚本如:
echo "###############################class 解析复制工具#####################################" echo "##解析当前目前下所有.class文件,并复制到对应包路径;如文件存在则先备份再复制 #" echo "##使用方法: #pp.sh <path> path:class根目录,即类都将复制到以这个为根目录的对应包下。#" echo "##################################hzdev###############################################" binPath=$1 if [ ! -n "$binPath" ]; then echo 未指定class根目录,程序退出 exit 0 #binPath=pwd|sed 's/ //g' fi echo ============class根目录:$binPath timeStamp=`date '+%s'` for f in *.class do ################ # echo ========Current class:$f className=$(echo "$f"|sed -e's/\.class//g') className_=$(echo $className| sed 's/\$.*//g') package=$(javap $className|grep -oP '(?<=class ).*(?=\.'$className_'.* extends)'|sed -e's/\./\//g') #echo "className:"$className #echo "package:"$package classFile="$binPath"/"$package"/"$f" classPath="$binPath"/"$package" # echo $classFile #check path exists if [ ! -d "$classPath" ];then echo =====目录$classPath不存在,创建目录 mkdir $classPath -p fi #check class file exists if [ ! -f "$classFile" ]; then echo "复制文件$f------------>$classFile" cp $f $classFile else bakFile="$classFile"."$timeStamp" echo "=======>class文件存在,备份为 $bakFile" echo "复制文件$f------------>$classFile" mv $classFile $classFile.$timeStamp cp $f $classFile fi echo "******************************************************************************************" done
相关推荐
### Java中关于Package的深入解析 #### Package的概念与作用 在Java编程语言中,`package`是一种用于组织类和接口的机制。通过这种方式,开发者能够有效地管理类库,避免命名冲突,并提供了一种访问控制机制。 ##...
`-d classes`指定了编译后的`.class`文件输出到`classes`目录。 - 结果:`classes\org\xalg\good\Good.class` - **编译HelloWorld.java** 在`pro`目录下执行: ```shell javac -d classes -cp classes ...
- `adb pull /data/anr/traces.txt C:\Users\Administrator\Desktop\traces.txt`: 将设备上的`traces.txt`文件复制到计算机的指定路径。 - `cat xxx/xxx/ >> /sdcard/`: 将指定文件的内容追加到SD卡根目录下的文件...
- **application.package**:定义应用的包名。 - **bin.dir**:JDK 的 bin 目录路径。 - **app.name**:定义应用名称。 - **app.source.path**:源码存放路径。 - **jdk.home**:JDK 安装路径。 - **output....
其中`-n`标志表示后面跟着的是组件名(ComponentName),由包名(package name)和类名(class name)组成,格式为:`<package>/<class>`。 - **示例** 例如,启动时钟应用: ```shell adb shell am start -n ...
这个脚本首先检查手机是否已连接到Linux终端(通过`adb devices`命令),如果连接成功,它会获取当前运行应用的包名(通过`adb shell dumpsys activity top`并使用awk进行解析),然后调用`pidcat.py`脚本并传入包名...
- 将`HelloServlet.class`所在的`com`包复制到`\WEB-INF\classes`下。 - 创建`web.xml`文件来配置Servlet。 ```xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...
蓝牙 (class 1) ;四频 (850 , 900 , 1800 , 1900) ;支持 3G , 802.11b 和 802.11g 。----------------------------------- Android 编程基础 5 互联网 支持 HTTP 、 WAP Push 和 xHTML ;支持 POP 、 IMAP 、 ...
基本的Monkey命令是`adb shell am instrument -w -e class com.android.monkeyrunner.MonkeyRunner com.android.commands.monkey.MonkeyDevice/your.package.name`,这里的`your.package.name`需要替换为你的应用包...
使用这个包的第一步通常是将其安装到你的Python环境中。如果你的系统已经安装了Python和pip(Python的包管理器),你可以通过以下命令进行安装: ```bash pip install path/to/cmd.py-3.11.tar.gz ``` 这里的"path...
在Android平台上实现实时监听并读取微信最新消息是一项技术挑战,因为这涉及到对第三方应用数据的访问,而Android系统默认是禁止这样的行为的。不过,通过一些特定的技术手段,我们可以在一定程度上实现这一功能。...
这条命令指定了测试类的路径,并使用JUnit的文本界面运行器(TestRunner)来执行测试。 #### 七、总结 本文介绍了Android Test Framework的基础知识,包括其架构、如何定义测试用例以及如何编写和运行测试。通过这些...
`setBundleAssetName`和`setJSMainModuleName`用于指定JavaScript代码的入口和加载路径,`addPackage(new MainReactPackage())`添加了核心的React包,确保React运行环境的正常工作。 此外,`MainActivity`还需要...