|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
继承自相应的不可变类比如NSMutableArray继承自NSArray他们都添加了可以改变对象内容的方法比如-(void)addObject:(id)anObject添加对象-(void)removeObject:(id)anObject删除对象上面只是一个大概的总结开辟apk的时分固然要思索回护好本人的代码,Android情况就供应了ProGuard来举行代码搅浑,的确是一个十分有效的工具,但用起来也的确够折腾的。
<br>1.基础设置
eclipse下创建android工程,就会天生proguard.cfg和project.properties,在前面的文件追加proguard.config=proguard.cfg便可让后面的设置文件在export时失效。默许的谁人文件有一些内容,这里给一个更通用点的。##—————Begin:proguardconfigurationcommonforallAndroidapps———-
-optimizationpasses5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
-optimizations!code/simplification/arithmetic,!field/*,!class/merging/*
-keepattributes*Annotation*
-renamesourcefileattributeSourceFile
-keepattributesSourceFile,LineNumberTable
#以下两个命令共同让类的路径给删除
-allowaccessmodification
-repackageclasses”
#纪录天生的日记数据,在proguard目次下
-dumpclass_files.txt
-printseedsseeds.txt
-printusageunused.txt
-printmappingmapping.txt
#非常都能够疏忽就翻开
#-dontwarn
-keeppublicclass*extendsandroid.app.Activity
-keeppublicclass*extendsandroid.app.Application
-keeppublicclass*extendsandroid.app.Service
-keeppublicclass*extendsandroid.content.BroadcastReceiver
-keeppublicclass*extendsandroid.content.ContentProvider
-keeppublicclass*extendsandroid.app.backup.BackupAgentHelper
-keeppublicclass*extendsandroid.preference.Preference
-keeppublicclasscom.android.vending.licensing.ILicensingService
-dontnotecom.android.vending.licensing.ILicensingService
-keepnamesclass*implementsjava.io.Serializable
#Explicitlypreserveallserializationmembers.TheSerializableinterface
#isonlyamarkerinterface,soitwouldn’tsavethem.
-keepclassmembersclass*implementsjava.io.Serializable{
staticfinallongserialVersionUID;
privatestaticfinaljava.io.ObjectStreamField[]serialPersistentFields;
privatevoidwriteObject(java.io.ObjectOutputStream);
privatevoidreadObject(java.io.ObjectInputStream);
java.lang.ObjectwriteReplace();
java.lang.ObjectreadResolve();
}
#Preserveallnativemethodnamesandthenamesoftheirclasses.
-keepclasseswithmembernamesclass*{
native;
}
-keepclasseswithmembernamesclass*{
public(android.content.Context,android.util.AttributeSet);
}
-keepclasseswithmembernamesclass*{
public(android.content.Context,android.util.AttributeSet,int);
}
#PreservestaticfieldsofinnerclassesofRclassesthatmightbeaccessed
#throughintrospection.
-keepclassmembersclass**.R$*{
publicstatic;
}
#Preservethespecialstaticmethodsthatarerequiredinallenumerationclasses.
-keepclassmembersenum*{
publicstatic**[]values();
publicstatic**valueOf(java.lang.String);
}
-keepclass*implementsandroid.os.Parcelable{
publicstaticfinalandroid.os.Parcelable$Creator*;
}
#假如你的工程是对外供应办法挪用就翻开
#-keeppublicclass*{
#publicprotected*;
#}
##—————End:proguardconfigurationcommonforallAndroidapps———- 2.办理export打包的报错
这个时分export提醒“conversiontoDalvikformatfailedwitherror1”毛病,网上说法有很多多少种,最初我仍是把proguard从4.4晋级到4.8就办理了。官方地点是http://proguard.sourceforge.net。下面的设置文件参数能够在这里查阅。
晋级举措很复杂,就是把androidsdk目次下的tool/proguard目次掩盖一下便可。
3.打包出来的程序怎样调试
一旦打包出来,就不克不及用eclipse的logcat往看了,这里能够用androidsdk中ddms.bat的tool来看,一用就发明和logcat实在仍是一个工具,就是多了个设备的选择。
4.利用gson必要的设置
当Gson用到了泛型就会有报错,这个真给忧郁了半天,提醒“Missingtypeparameter”。最初找到一个材料给了一个办理举措,参考:http://stackoverflow.com/questions/8129040/proguard-missing-type-parameter。
别的我又用到了JsonObject,提交的Object内里的members竟然被改成了a。以是下面给的工具还不敷,还要加上#用到本人拼接的JsonObject
-keepclasscom.google.gson.JsonObject{*;} 我团体倡议削减这些依附包搅浑带来的贫苦,爽性都全体保存不搅浑。比方-keepclasscom.badlogic.**{*;}
-keepclass*implementscom.badlogic.gdx.utils.Json*
-keepclasscom.google.**{*;} 5.利用libgdx必要的设置
参考http://code.google.com/p/libgdx-users/wiki/Ant
6.考证打包效果
我是使用了apktool的反编译工具,把打包文件又解压了看了一下,假如包路径、类名、变量名、办法名这些变更和你希冀分歧,那就OK了。命令:apktool.batdxxx.apkdestdir 总结
这个工具用起来也不是很复杂,出格是你程序用到的初级特征多,就更简单出成绩。别的proguard的参数看起来的确也有点欠好了解,打包历程慢,测试也对照华侈工夫。工具虽好,但真不是那末简单上手。
这个类是具体的数据对象用上面的例子说就是衣服一般都是继承这个对象XCode可以帮你做具体搜搜这种文章很多NSFetchRequest用来执行CD请求的相当与select语句外壳NSEntityDescription用来描述实体的 |
|