混淆Android Test项目以及项目(在发布和混淆版本上运行测试)

混淆Android Test项目以及项目(在发布和混淆版本上运行测试),第1张

概述假设我有一个带有测试的 Android应用程序项目. 有没有什么办法可以针对发布版本运行我们的测试套件(在一个单独的测试项目中)? 在阅读赏金的评论之后,我意识到OP实际上只是提出了一些简单的是/否回复,所以我将把我的评论扩展到答案.一般来说,正确设计的proguard.cfg和项目结构足以防止这种困境. 典型的proguard配置(参见第7节“this link中的完整Android应用程序部分 假设我有一个带有测试的 Android应用程序项目.

有没有什么办法可以针对发布版本运行我们的测试套件(在一个单独的测试项目中)?

解决方法 在阅读赏金的评论之后,我意识到OP实际上只是提出了一些简单的是/否回复,所以我将把我的评论扩展到答案.一般来说,正确设计的proguard.cfg和项目结构足以防止这种困境.

典型的proguard配置(参见第7节“this link中的完整AndroID应用程序部分”)保证在混淆期间保留所有与AndroID相关的内容,如Activity,VIEw等.例如,改变配置没有任何意义,以混淆Acticity.onCreate()方法,因为它显然会在运行时破坏应用程序.换句话说,一个好的设计proguard.cfg将保护所有公共接口到底层运行时框架并保持它们保持不变.

... ...-keep public class * extends androID.app.Activity-keep public class * extends androID.app.Application-keep public class * extends androID.app.Service-keep public class * extends androID.content.broadcastReceiver-keep public class * extends androID.content.ContentProvIDer-keep public class * extends androID.vIEw.VIEw {    public <init>(androID.content.Context);    public <init>(androID.content.Context,androID.util.AttributeSet);    public <init>(androID.content.Context,androID.util.AttributeSet,int);    public voID set*(...);}... ...

另一方面,AndroID测试项目应该专注于测试AndroID组件(在混淆期间故意保留),即一个视图被正确呈现,一个按钮点击执行正确的任务,并应避免为不依赖于任何的POJO类编写测试AndroID API,请注意这些POJO通常是我们混淆的.最好在应用程序或引用的java项目中为这些POJO编写纯junit测试,以便在创建最终版本(模糊,签名和zipaligned)之前在maven测试阶段涉及这些junit测试.此外,良好的OO设计将屏蔽这些中间POJO依赖性并使它们对外部透明,即运行时框架.

app/  src/main/java/  src/test/java/  <-- intermediate POJO tests put here.  AndroIDManifest.xml  ... ...app-test/  src/main/java  <-- AndroID component tests put here.  AndroIDManifest.xml  ... ...

在AndroID测试项目中编写POJO junit测试是绝对正常的,但是,如果您仍然希望能够针对混淆的apk运行测试项目,则需要正确调整应用程序项目的proguard.cfg并在混淆期间保留POJO类.为了适应测试代码.

总结

以上是内存溢出为你收集整理的混淆Android Test项目以及项目(在发布和混淆版本上运行测试)全部内容,希望文章能够帮你解决混淆Android Test项目以及项目(在发布和混淆版本上运行测试)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1140760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存