j.c*_*j.c 6 android proguard admob
我将以两种版本发布我的应用程序,包括付费和免费(使用AdMob广告).
除了我在AdMob服务的免费版本中使用的google-play-service_lib之外,这两个版本完全相同.
使用proguard后的最终apk大小为:
广告版本的
付费版本
1.946.634字节为1.301.435字节
在免费版中,我只会展示插页式广告.
这是我相对于google-play-service_lib的proguard设置
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
Run Code Online (Sandbox Code Playgroud)
有什么我可以做的事情来减少文件大小,如删除一些-keep标志或什么?
编辑
使用apktool我发现没有一个类从谷歌Play业务包已经萎缩(包括com.google.android.gms.maps.*,com.google.android.gms.games.*和许多其他人,我认为不需要对广告的管理).
如何强制缩小类或类组?
编辑(再次)
看起来Eclipse并没有保留Proguard输出,至少我无法在任何地方看到它.然后我配置我的项目和库使用Ant构建以查看一些输出,但它几乎没有实质性,这是两种情况:
-whyareyoukeeping class com.google.android.gms.maps.GoogleMap
[proguard] Explaining why classes and class members are being kept...
[proguard] Printing usage to [...../bin/proguard/usage.txt]...
[proguard] com.google.android.gms.maps.GoogleMap
[proguard] is not being kept.
Run Code Online (Sandbox Code Playgroud)
(至少我读过那个类没被保留,虽然我可以使用apktool看到它!)和
-whyareyoukeeping class com.google.android.gms.games.Games
[proguard] Explaining why classes and class members are being kept...
[proguard] Printing usage to [...../bin/proguard/usage.txt]...
Run Code Online (Sandbox Code Playgroud)
关于给定的课程没有任何说法.
我放弃了,对于单个插页式广告,我的应用将其规模增加了50%,尽管谷歌有关GPS的说法:
如果您在构建过程中使用ProGuard,则客户端库占用空间小,因此不会对应用程序的文件大小产生负面影响.
没有 - 我可以找到它的指南!
小智 13
它与proguard无关.如你所知,谷歌播放服务是密切的来源.没有源代码,proguard无法处理它.但你可以手动收缩它.
1,从jar文件中删除未使用的类
在google play服务的文件夹中,通常是sdk\extras\google\google_play_services\libproject\google-play-services_lib\libs \,用zip文件管理器打开google-play-services.jar,如7zip,你可以找到很多这样的文件夹如果您只使用广告,那么女巫对你来说是没用的.所以只需删除它们.小心保留广告,常用,动态,内部和位置文件夹,否则您将在展示广告时获得NoClassDefFoundError的fc.
2,如果您只使用广告,请从res文件夹中删除未使用的资源.
google-play-services_lib\res文件夹中的许多资源对您没用,您可以将其删除.例如values-af,values-am,....你需要保留的是color,drawable,drawable-hdpi和values文件夹.
3,现在在eclipse中刷新并构建google-play-services_lib项目,然后再次刷新并构建项目.现在你知道发现apk尺寸变小了.我的APK的大小,从下井902KB到480KB proguard的面前,330KB的ProGuard之后.
| 归档时间: |
|
| 查看次数: |
3618 次 |
| 最近记录: |