导航:首页 > 操作系统 > androidcreator

androidcreator

发布时间:2024-04-23 20:32:09

androidStudio自带的混淆配置

###########################以下是AndroidStudio自尺液带的混淆配好嫌置协议###############################

-dontusemixedcaseclassnames

-

-verbose

-dontoptimize

-dontpreverify

-keepattributes Annotation
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
native <methods>;
}

-keepclassmembers public class * extends android.view.View {
void set ( * );
*** get
();
}

-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}

-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator CREATOR;
}

-keepclassmembers class * .R$ {
public static <fields>;
}

-dontwarn android.support.**

-keep class android.support.annotation.Keep

-keep @android.support.annotation.Keep class * {*;}

-keepclasseswithmembers class * {
@android.support.annotation.Keep <methods>;
}

-keepclasseswithmembers class * {
@android.support.annotation.Keep <fields>;
}

-keepclasseswithmembers class * {
@android.support.annotation.Keep <init>(...);
}

###########################以友困手下是需要手动的混淆配置协议###############################

-libraryjars "C:Program FilesJavajre1.8.0_151lib t.jar"

-optimizationpasses 5

-dontusemixedcaseclassnames

-ignorewarnings

-keep class com.zhuge.analysis.stat.ZhugeParam{
*;
}
-keep class com.zhuge.analysis.listeners.ZhugeInAppDataListener{
*;
}

㈡ 一个操作让游戏内存立减50+%-CocosCreator性能优化之压缩纹理

在游戏中,纹理不仅占据大量的包体,也占据了大量的内存。传统的图片压缩格式(如JPEG、PNG等)虽能减少资源大小,但是不能被GPU直接识别,还是需要先加载到内存通过CPU解码,转换成RGB/RGBA等能被GPU识别的格式,才能传送到GPU进行渲染。

为避免这些问题,压缩纹理,指的是一种针对GPU的纹理压缩方案,使纹理能够直接被GPU识别并进行渲染,它具有以下优点。

传统的图片压缩主要目的是 存储 和 传输 ,为了尽可能的高效压缩,使用了可变的压缩比率,因此在解压时需要解压更多的像素位才能读取某个像素的位置,不适合随机和快速读取,也发挥不了GPU的并行处理优势。

而压缩纹理使用一个固定的压缩比率,将纹理划分成多个像素块,每个像素块包含 2*2 或 4*4 个像素,然后对每个像素块进行压缩,被压缩的像素信息存储在一个像素集合中,每个像素块的索引位置存储在一个块索引图中。读取时,首先将纹理坐标转化为块索引值,然后在像素集合中查找对应的像素块,最后在这个像素块中找到纹理颜色值。

因为采用了固定的压缩比率,GPU内部可以并行处理,从而快速的解压缩。与之相对的是,纹理的压缩过程发生在程序运行之前,并不在意编码速度,因此在压缩时会遍历所有可能性,找到和原始像素差值最小的编码,这也是纹理压缩耗时较久的原因。

顺便说一下,普通图片格式中,PNG是无损压缩,JPEG是有损压缩。而压缩纹理都是有损压缩,只是在绝大部分情况下,手机上看不出来而已。

手机上使用压缩纹理依赖于OpenGL ES的支持,OpenGL ES 2.0本身并没有定义任何纹理压缩格式,它仅提供 glCompressTexImage2D() 方法供应用程序上传压缩纹理,压缩纹理的格式由各个GPU厂商定义和实现。

OpenGL ES 3.0提供了压缩纹理标准,使各个平台都可以使用同一种压缩纹理,但市面上的设备还需要很长时间才会全部过渡到OpenGL ES 3.0。因此,仍然需要对不同的平台和设备使用不同的压缩纹理格式。

手机游戏中常用的有以下格式。

ETC1把 4*4 的像素块压缩成固定的64位编码(8个字节), 4*4 像素块是16个像素,每个像素4字节,一共占64个字节,所以压缩比是 64/8=8。但是ETC1只能存储RGB信息,不适用带透明度的纹理,为解决这个问题,Creator在ETC1文件中额外写入了透明度信息,即ETC1+A格式,它的压缩比是 64/16=4。
ETC1/ETC1+A需要OpenGL ES 2.0(对应WebGL 1.0)环境,目前几乎所有Android手机都支持ETC1,但是iOS不支持。
ETC1/ETC1+A纹理的长宽可以不相等,但要求是2的幂次方。

ETC2是ETC1的扩展,压缩比率一样,但压缩质量更高,而且支持透明通道,能完整存储RGBA信息。
ETC2需要OpenGL ES 3.0(对应WebGL 2.0)环境,目前还有不少低端Android手机不兼容,iOS方面从 iPhone5S 开始都支持OpenGL ES 3.0。
ETC2和ETC1一样,长宽可以不相等,但要求是2的幂次方。

Creator中常用的是PVRTC4+A,压缩比和ETC一样,iOS全系列支持,但是Android不支持。另外PVR要求纹理长宽相等(正方形)且是2的幂次方,例如 1280*720 的PNG图片,转换后变成 2048*2048 ,这一点会大大增加内存消耗。在实测中还发现转换后的图片质量不如ETC1,存在模糊、毛边现象,对画面要求高的游戏不适合。

压缩纹理的使用非常简单,根据构建平台添加需要的格式即可,具体参见Creator官方文档,本文不再重复了。

Creator编辑器还提供了转换压缩纹理的选项,根据转换速度分为Fast、Slow等好几档,速度越慢则画面质量越好。但不管选哪个,只影响显示效果和转换时长,显存占用都是一样的。一般情况下,显存占用就是压缩纹理的文件大小,例如文件大小是1.5M,则它占用的显存也是1.5M。

在设置压缩纹理格式时,目前Creator 2.x版本还需手动一个一个设置。如果想一次性设置所有或部分资源,自己写个脚本遍历修改对应的 .meta 文件也比较方便,这里是一个我写好的脚本 一键自动化设置压缩纹理格式

在实际项目中的测试结果是,单图、自动图集、TexturePack合图加起来超过两千张图片的Creator工程,使用PNG时打出来的apk包大小近500M,内存占用1.3G。采用压缩纹理后,包体大小降到150M,内存占用降到600M。

㈢ java android 实现parcelable序列化,为什么必须要实现CREATOR

你好:
Android序列化对象主要有两种方法,实现Serializable接口、或者实现Parcelable接口。实现Serializable接口是Java SE本身就支持的,而Parcelable是Android特有的功能,效率比实现Serializable接口高,而且还可以用在IPC中。实现Serializable接口非常简单,声明一下就可以了,而实现Parcelable接口稍微复杂一些,但效率更高,推荐用这种方法提高性能。下面就介绍一下实现Parcelable接口的方法
通过实现Parcelable接口序列化对象的步骤:
1、声明实现接口Parcelable
2、实现Parcelable的方法writeToParcel,将你的对象序列化为一个Parcel对象
3、实例化静态内部对象CREATOR实现接口Parcelable.Creator:
Java代码
public static final Parcelable.Creator<T> CREATOR

其中public static final一个都不能少,内部对象CREATOR的名称也不能改变,必须全部大写。
4、完成CREATOR的代码,实现方法createFromParcel,将Parcel对象反序列化为你的对象

简而言之:通过writeToParcel将你的对象映射成Parcel对象,再通过createFromParcel将Parcel对象映射成你的对象。也可以将Parcel看成是一个流,通过writeToParcel把对象写到流里面,在通过createFromParcel从流里读取对象,只不过这个过程需要你来实现,因此写的顺序和读的顺序必须一致。

Parcel对象可以通过以下方法写入或读取byte, double, float, int, long, String这6种类型变量。

㈣ Android Activity之间传递对象及对象数组

假设对象为People类,包含信息姓名和年龄: 

方法一:Serializable 

必须条件:类实现了Serializable接口 

传递对象: 

传递端: 

接收端: 

传递对象空兆判数组: 

传递端: 

接收端: 

方法二:Parcelable 

必须条件:类实现了Parcelable接口 

传递对象: 

传递端: 

接收端: 

传递对象数组: 

传递端: 

接收端: 

可以发现在Parcelable中需实现public int describeContents()、 publicvoid writeToParcel(Parcel parcel, int arg1),还需要在添加一个静态成员变量CREATOR:public static final Parcelable.Creator CREATOR。 

区别:

1.Serializable的实现,只需要implements Serializable即可。这只是给对象打了一个标记,系统会自动将其序列化。猜衡 

2.Parcelabel的实现,不仅需要implements Parcelabel,还需要在类中添加一个静态成员变量CREATOR,这个变量需要实现 Parcelable.Creator 接口。 

3.在使用内存的时候,Parcelable 类比Serializable性能高,所以推荐使用Parcelable类。4.Serializable在序列化的时候会产生斗改大量的临时变量,从而引起频繁的GC。 

5.Parcelable不能使用在要将数据存储在磁盘上的情况,因为在外界有变化的情况下Parcelable不能很好的保证数据的持续性。

㈤ android开发如何调试

能够在eclipse上运行调试应用程序之前,你必须为它创建一个启动项。启动项指定哪个工程将被启动,哪个activity开始工作,以及使用哪些模拟器选项等。
按照以下步骤为Eclipse版本的应用程序创建合适的启动项:
打开启动项管理工具。
在Eclipse 3.3 (Europa)的版本中,酌情选择 Run > Open RunDialog... or Run > Open Debug Dialog... 。
在Eclipse3.4 (Ganymede)版本中,酌情选择 Run > Run Configurations...or Run > Debug Configurations... 。
在左边的工程类型列表选择Android Application选择,双击(或者点击右键选择new),创建一个新的启动项。
输入启动项名称。
在Android标签中,浏览要开始的工程和Activity 。
在Target标签中,设置想要显示的屏幕及网络属性,以及其他任何模拟器启动选项。
你可以在Common标签中设置更多的选项.
按下Apply保存启动配置,或者按下Run或Debug()。
运行和调试应用程序
一旦你设定了工程和工程启动配置,你就可以按照以下的说明运行和调试应用程序了。
从eclipse主菜单,根据情况选择Run>Run 或者 Run>Debug,开始运行或者调试活动启动项。
注意,这里活动启动项是在运行配置管理中最最近一次选中的那个。它不一定就是在Eclipse Navigation 面板中选择的程序(如果有的话)
设置和修改活动启动项,可以使用启动项管理工具。如何获得启动项管理工具可以参考创建一个启动项
运行或调试应用程序将触发以下动作:
启动模拟器,如果他还没有开始运行。
编译工程, 如果在上次编译的基础上修改过代码,将重新编译。在模拟器上安装应用程序。
Run选项,开始运行程序。
Debug 在"Wait for debugger "模式下启动程序,然后打开调试窗口并将Eclipse Java调试器和程序关联。
利用其他IDEs和工具开发Android应用程序
通常我们使用安装有ADT插件的eclipse Eclipse with the ADT plugin.来开发Android程序,这个插件将编辑,build和调试功能集成到IDE上。
然而,如果你想在其他的IDE上开发程序,例如IntelliJ,或者使用没有ADT插件的eclipse也可以。SDK提供了安装,编译,调试应用程序所需要的工具。
创建一个android工程
Android SDK包含一个activityCreator的程序,它将为工程产生多个stub文件和一个build文件。你可以用这个程序创建一个新的 Android工程或者在现有代码上创建工程,如SDK中包含的例子。对于linux 和Mac系统,SDK提供activityCreator.py,一个 Python脚本,Windows上则是activityCreator.bat一个批处理脚本。无论是哪种平台,用法是一样的。
按以下步骤运行activityCreator创建Android工程:
命令行下,切换到SDK下的tools/目录下,为你的工程文件新建一个目录。如果你是在现有代码上创建工程,切换到程序的根目录下。
运行activityCreator。在命令行下,你必须指定完全合格的类名作为参数。如果你是创建一个全新的工程,这个类代表的与它同名的stub类和脚本文件。如果是在现有代码上创建工程,必须指定软件包中其中一个Activity类的名称。命令选项的脚本包括:
--out <folder> 设定输出目录。默认情况下输出目录为当前目录。如果你想为工程文件创建一个新的目录,可以使用这个选项来指向它。
--ide intellij, 在一个新的项目中生成IntelliJIDEA 工程文件。
这里有个例子:
~/android_linux_sdk/tools $ ./activityCreator.py --out myprojectyour.package.name.ActivityName
package: your.package.name
out_dir: myproject
activity_name: ActivityName
~/android_linux_sdk/tools $
activityCreator脚本生成以下文件和目录(但是不能重写已有文件):
AndroidManifest.xml 程序的清单文件,同时为工程指定Activity类。
build.xml 一个Ant文件,用来编译/打包应用程序。
src/your/package/name/ActivityName.java 你指定的输入Activity类。
your_activity.iml, your_activity.ipr, your_activity.iws [only with the-ide intelliJ flag] intelliJ工程文件
res/ 资源目录.
src/ 源代码目录.
bin/ build脚本的输出目录.
现在你可以将开发文件夹移到任何地方,但是记住,必须使用tool/文件夹下的adb程序将文件发送到模拟器上。因此你需要在你工作环境和tools/文件夹之间活动。
当然你需要避免移动SDK目录,因为它将打断编译脚本。(再重新build之前需要手动更新SDK的映射路径)
编译 android应用程序
使用activityCreator生成的Ant文件build.xml来编译程序
如果你没有,你可以通过Apache Ant home page得到Ant文件。安装它,并确定它在你的可执行文件路径下。
呼叫Ant之前,你需声明JAVA_HOME环境变量,并将它设置为JDK的安装路径。
注 意:在windows上,JDK默认的安装路径为"ProgramFiles",这个路径将会引起Ant失败,因为路径中间有空格。解决这个问题,你可以像这样指定环境变量 JAVA_HOME:JAVA_HOME=c:\Prora~1\Java\ 然而简单的解决方法是将JDK安装在没有空格的目录下。例如:c:\java\jdk1.6.0_02.
如果你还没有这么准备好,按照上面创建一个新的工程的介绍建立一个工程。
现在你可以为你的工程运行Ant编译文件,只需在build.xml同文件夹下输入ant即可。每次修改原文件或是资源,都需要重新运行ant,它将把最新版的应用程序打包以便deploy.
运行Android程序
运行一个编译好的程序,你需要用adb工具将.apk文件加载到模拟器的/data/app/目录下,用法如下面介绍。
启动模拟器(命令行下运行sdk目录下的/tools/emulator)。
模拟器切换到主画面(最好不要在程序运行的时候向模拟器安装程序,可以按home键离开应用程序)。
运 行adb,安装myproject/bin./<appname>.apk文件。例如,安装Lunar Lander 示例,命令行下,切换到SDK目录下的/sample/LunarLander子目录下,输入../../tools/adbinstall bin/LunarLander.apk
在模拟器中,打开可执行程序列表,卷动屏幕,选中并启动你的应用程序。
注意:当你第一次安装一个Activity时,你可能需要在启动项显示之前,或者其它程序调用它之前重新启动模拟器。因为软件包管理工具通常只有在模拟器启动时才能完全的审查manifests。
为程序附加调试器
这一节我们介绍如何在屏幕上显示调试信息(例如CPU使用率),以及如何将IDE和模拟器上运行的程序关联起来。
使用eclipse插件可以自动的生成调试器。但你也可以通过配置IDES来监听调试端口得到调试信息。
启动Dalvik Debug Monitor Server (DDMS) 工具 ,它在IDE和模拟器之间扮演着端口转换服务的角色。?
设置模拟器调试配置选项。例如,等到调试信息被加载后才启动应用程序。注意,很多调试选项无需DDMS也可以使用,例如模拟器上显示CPU的使用效率,或者屏幕的刷新频率。
配置IDE,使得调试时IDE与8700端口关联 .how to set up Eclipse to debug your project. 包含以下信息。
配置IDE附加调试端口
DDMS将为每一个虚拟机分配一个特殊的调试端口,这个端口在模拟器上可以找到。你必须将你的IDE与此端口(虚拟机上信息栏中有列出这些端口)关联或者是默认的端口8700。这样可以使IDE 连接到模拟器上程序列表中的任一个程序。
你的IDE需要能够关联模拟器上正在运行的程序,显示它的线程,并允许你挂起它,检查它的状态,设置断点。如果你在开发设置面板选择了“等待调试”,应用程序将等到Eclipse连接后才运行,所以你需要在连接之前设置断点。
修改正在调试的程序,或者在当前程序运行时选择“等待调试”将引起系统杀死这个应用程序。如果你的程序处于一种坏的状态,你可以使用方式杀死它,方法很简单,只需要设置和钩掉复选框。

阅读全文

与androidcreator相关的资料

热点内容
大秀直播平台源码 浏览:416
java视屏 浏览:932
电脑中如何给程序加密 浏览:238
java排序容器 浏览:942
职称证书在哪个app下载 浏览:362
四九算法算男女 浏览:659
javawindows8 浏览:496
2021世界程序员节 浏览:484
php翼支付 浏览:882
盈通服务器ip地址 浏览:789
3des算法的c语言实现 浏览:873
网上怎样购买服务器地址 浏览:813
新氧app都在哪个城市 浏览:731
十二大加密货币图片 浏览:315
数据库日志自动压缩 浏览:929
手机表格文档用哪个app 浏览:77
找人开发app的公司怎么样 浏览:652
android蓝牙发送数据 浏览:428
范文澜中国通史pdf 浏览:756
php常用的设计模式 浏览:890