帮人家做网站难吗,一键生成app制作器,阿里云上做网站,荆门城乡建设局网站前 言 2015年#xff0c;Android OS 目前在手机操作系统的市场占有率已达59%#xff0c;权威机构预计#xff0c;Android市场占有率在2016年将达到63%#xff0c;由于Android的开放性#xff0c;未来占有率还将不断增加#xff0c;Android的NDK支持C/C语言#xff0c… 前 言 2015年Android OS 目前在手机操作系统的市场占有率已达59%权威机构预计Android市场占有率在2016年将达到63%由于Android的开放性未来占有率还将不断增加Android的NDK支持C/C语言这就增加了其在物联网智能硬件领域的份额按照这个趋势未来必然是Android一统天下 那如何才能开发出受欢迎的Android应用呢 出色的用户体验有三个特征速度快、响应及时、无缝。下面的文字可以帮助你在Android上实现这些特点 速度快 你不能指望手机像桌面系统、服务器一样提速毕竟移动设备的体积和发热有限制所以更多的是要关注你的代码是否高效。 编写高效的Android代码应遵循两个原则 1、不做不必要的事 2、不分配不必要的内存 以下是一些达到此目标的小技巧有一些技巧是与OOP原则冲突的请根据工程情况斟酌使用 1、避免建立对象 例如int数组比Integer数组好同理这适用于所有基本类型的组合。 2、使用本地方法 不要吝惜使用String.indexOf(), String.lastIndexOf()等特殊实现的方法(specialty methods)。这些方法都是使用C/C实现的 3、使用实现类比接口好 Map myMap1 new HashMap();
HashMap myMap2 new HashMap(); 调用一个接口的引用会比调用实体类的引用多花费一倍的时间 4、不用getter和setter 应该直接访问变量 5、将成员变量缓存到本地 for (int i 0; i this.mCount; i) dumpItem(this.mItems[i]); 上面的代码最好改成这样 int count this.mCount;
Item[] items this.mItems;
for (int i 0; i count; i) dumpItems(items[i]); 另外永远不要在for的第二个条件中调用任何方法 6、给常量加上final 下面的代码执行时编译器会生成一个叫做的初始化类的方法当类第一次被使用的时候这个方法会被执行。方法会将42赋给intVal然后把一个指向类中常量表的引用赋给strVal。当以后要用到这些值的时候会在成员变量表中查找到他们。 static int intVal 42;
static String strVal “Hello, world!”; 把上面的代码改成下面这样 static final int intVal 42;
static final String strVal “Hello, world!”; 这样写类不再需要方法因为在成员变量初始化的时候会将常量直接保存到类文件中。用到intVal的代码被直接替换成42而使用strVal的会指向一个字符串常量而不是使用成员变量。 7、谨慎使用foreach foreach可以用在实现了Iterable接口的集合类型上。foreach会给这些对象分配一个iterator然后调用hasNext()和next()方法。你最好使用foreach处理ArrayList对象但是对其他集合对象foreach相当于使用 iterator 8、避免使用枚举 枚举变量非常方便但不幸的是它会牺牲执行的速度并大幅增加文件体积 9、将内部类需要访问的外部变量或方法 声明在包的范围内 public class Foo {private int mValue;public void run() {Inner in new Inner();mValue 27;in.stuff();}private class Inner {void stuff() {System.out.println(Foo.this.mValue);}}
} Foo$Inner是一个完全独立的类它要直接访问Foo的私有成员是非法的。编译器会自动生成一个方法 static int Foo.access$100(Foo foo) {return foo.mValue;
} 内部类在每次访问 mValue() 方法时都会调用这个静态方法。同理内部类要访问私有方法也是如此。 10、避免使用浮点数 嵌入式处理器通常没有支持浮点运算的硬件所有对 float、double 的运算都是通过软件实现的 通过将内部类访问的变量和函数声明由私有范围改为包范围我们可以避免这个问题。这样做可以让代码运行更快并且避免产生额外的静态方法。(遗憾的是这些成员变量和方法可以被同一个包内的其他类直接访问这与经典的OOP原则相违背。因此当你设计的时候应该谨慎使用这条优化原则) 响 应 及 时 1、将耗时工作交到子线程 2、如果你的程序在后台默默的处理用户输入请给出一个代码正在工作的提示例如ProgressBar(进度条) 和 ProgressDialog(进度对话框) 都是响 应 及 时 很好的选择 3、如果是游戏把计算步骤放在子线程中 无 缝 1、不要丢失数据继承onPause()方法 2、利用ContentProvider来共享数据 3、不要打断用户使用通知。 以上就是在开发过程中提高应用性能的一些实用小技巧欢迎补充谢谢。 转载于:https://www.cnblogs.com/jackchiang/p/4588955.html