小编Thu*_*sDP的帖子

Android,Proguard和Javamail

首先,我已经提到过类似的帖子,Android,javamail和proguard

提到的解决方案是在proguard-project.txt中明确地保留以下内容:

-dontwarn java.awt.**
-dontwarn java.beans.Beans
-dontwarn javax.security.**

-keep class javamail.** {*;}
-keep class javax.mail.** {*;}
-keep class javax.activation.** {*;}

-keep class com.sun.mail.dsn.** {*;}
-keep class com.sun.mail.handlers.** {*;}
-keep class com.sun.mail.smtp.** {*;}
-keep class com.sun.mail.util.** {*;}
-keep class mailcap.** {*;}
-keep class mimetypes.** {*;}
-keep class myjava.awt.datatransfer.** {*;}
-keep class org.apache.harmony.awt.** {*;}
-keep class org.apache.harmony.misc.** {*;}
Run Code Online (Sandbox Code Playgroud)

乍一看,这似乎是有效的,因为它编译时没有任何警告.但是,它无法读取消息内容,只是跳过它.我尝试过以下方法:

  1. -includelibraryjars明确命名javamail所需的3个jar文件.
  2. - 将jar作为外部库删除,遵循新的libs/include格式.
  3. - 维护proguard-android.txt中的默认android设置
  4. - 跟随proguard常见问题解答中的故障排除指南.
  5. - 启动一个新项目并将源文件复制到它.
  6. - 各种程序选项,包括-dontshrink,keepnames等
  7. - 专业项目/清洁

经过几个小时的挫折之后,我发现这似乎有用了:

-dontobfuscate
-dontshrink
-keepdirectories
-keeppackagenames javax.mail.**
-keeppackagenames javax.activation.**
-keeppackagenames …
Run Code Online (Sandbox Code Playgroud)

android jakarta-mail proguard

5
推荐指数
1
解决办法
1916
查看次数

ContentObserver与BroadCastReceiver:电池使用情况,Ram,CPU?

由于应用程序的电池使用,内存和CPU使用需要关注,多个内容服务器与多个广播接收器的费用是多少?

例1:

使用START_STICKY运行的服务,使用5个正确注册/未注册的contentobservers.

例2:

从清单中设置的5个广播接收器触发的服务.

例3:

使用START_STICKY运行的服务,使用5个注册的广播接收器.

观察者和接收者之间电池使用/ ram/cpu的真正区别是什么?有没有专业人士可以参与其中?我假设1个实例不会产生太大影响,但让我们一起运行5个以上的例子.

android battery broadcastreceiver contentobserver

4
推荐指数
1
解决办法
3412
查看次数