android 测试工程 关闭混淆,混淆Android Test项目以及项目(在发布和混淆版本上运行测试)...

在阅读赏金的评论之后,我意识到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 (android.content.Context);

public (android.content.Context,android.util.AttributeSet);

public (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/

AndroidManifest.xml

... ...

app-test/

src/main/java

AndroidManifest.xml

... ...

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值