出色的用户体验有三个特征:速度快、响应及时以及无缝。下面的信息帮助你的应用如何能够在Android上实现这些特征。
一、速度快
你不能假设手机与桌面系统和服务器一样提速,更多的是你要关注你的代码是否高效。
编写高效的Android代码,应遵循两个原则:
不要做不必要的事
不要分配不必要的内存
以下是一些达到此目标的小技巧(有一些技巧是与oo的原则冲突,斟酌使用场景):
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
static int intVal = 42;
static String strVal = “Hello, world!”;
编译器会生成一个叫做的初始化类的方法,当类第一次被使用的时候这个方法会被执行。方法会将42赋给intVal,然后把一个指向类中常量表的引用赋给strVal。当以后要用到这些值的时候,会在成员变量表中查找到他们。
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的私有成员是非法的。编译器会自动生成一个方法:
/*package*/ static int Foo.access$100(Foo foo) {
return foo.mValue;
}
内部类在每次访问”mValue”方法时,都会调用这个静态方法。同理,内部类要访问私有方法也是如此。
10、避免使用浮点数
嵌入式处理器通常没有支持浮点运算的硬件,所有对”float”和”double”的运算都是通过软件实现的
通过将内部类访问的变量和函数声明由私有范围改为包范围,我们可以避免这个问题。这样做可以让代码运行更快,并且避免产生额外的静态方法。(遗憾的是,这些成员变量和方法可以被同一个包内的其他类直接访问,这与经典的OO原则相违背。因此当你设计的时候应该谨慎使用这条优化原则)
二、响应及时
1、将耗时工作交到子线程
2、如果你的程序在后台处理用户的输入,给出一个你正在工作的提示(ProgressBar(进度条)和ProgressDialog(进度对话框)是很好的选择)
3、如果是游戏,把计算步骤放在子线程中
三、无缝
1、不要丢失数据,继承onPause()方法
2、利用ContentProvider来共享数据
3、不要打断用户,使用通知
(内容整理自网络)
分享到:
相关推荐
总结来说,提高Android服务的优先级可以通过将服务置于前台或利用绑定服务来实现。然而,开发者必须谨慎对待,平衡服务的持续运行与设备性能和电池寿命,以提供最佳的用户体验。同时,了解和适配Android的电源管理...
"Android 用户反馈SDK v1.0.1"是一个专为Android平台设计的SDK,旨在帮助开发者更好地管理和处理用户反馈,提高用户体验。这次更新的版本v1.0.1主要集中在功能优化和用户体验提升上。 首先,新增的“判断下载进度的...
综上所述,Android的抽屉式体验是其区别于其他操作系统的一大特色,它既满足了用户对应用组织的需求,也为开发者提供了丰富的定制空间,从而创造出多样化的用户体验。无论是从用户的角度还是开发者的角度,理解并...
在发送注册请求期间,展示一个进度条或加载对话框,提高用户体验。 8. **权限管理**: 如果涉及到互联网权限,记得在AndroidManifest.xml中声明`<uses-permission>`标签。 9. **安全考虑**: - **加密**:对...
这个版本在Android操作系统的历史中扮演着重要的角色,引入了一系列的新特性、改进和优化,旨在提升用户体验、开发者效率以及设备性能。在此,我们将深入探讨Android 8.0中的关键知识点。 1. **通知渠道...
Android Studio 常见设置总结 Android Studio 是一款功能强大且流行的集成开发环境(IDE),但是在实际使用中,很多开发者...通过这些设置,用户可以提高 Android Studio 的开发体验和效率,从而提高开发速度和质量。
实现Android用户登录记住密码功能可以提高用户体验,提高应用程序的使用率。但是,需要注意安全问题和用户隐私权。通过使用SharedPreferences存储用户名和密码,可以实现记住密码的功能,提高用户体验。
8. **用户体验**:为了提高用户体验,可以使用进度条显示网络请求状态,避免用户长时间等待无反馈。同时,输入框可以配置监听器,实时验证用户输入,减少错误提交。 9. **存储用户信息**:如果注册成功,可以考虑将...
### Android 用户登录界面设计知识...综上所述,用户登录界面的设计不仅涉及到基础的布局和组件选择,还需要关注用户体验、安全性和适配性等多个方面。开发者应该综合考虑这些因素,为用户提供既美观又实用的登录界面。
在Android应用开发中,登录注册功能是不可或缺的一部分,它为用户...开发者需熟练掌握Android开发技术,理解网络请求原理,并具备良好的用户体验设计能力。同时,引入图灵API展示了现代应用如何借助AI提升用户体验。
在Android开发领域,创建一个功能完备、用户体验优秀的应用程序是一项艰巨的任务。"Android-用心打造一款极致体验的TODO开源Android客户端"项目正是基于这样的目标,致力于提供一个高质量的待办事项(TODO)管理应用...
在Android平台上,良好的界面设计和用户体验至关重要。可以使用Material Design指南来创建符合现代审美的界面,包括色彩、图标、布局等方面。通过RecyclerView和Adapter,可以实现动态加载和滑动刷新的效果,提高...
10. **Instant Apps**:Android 8.1支持即时应用,用户无需安装应用即可使用部分功能,这对于开发者来说是提高应用可见度和用户体验的新方式。 11. **安全增强**:包括安全启动、文件系统加密、应用沙盒等,提升了...
- 数据缓存:使用内存缓存(如LruCache)或磁盘缓存(如OkHttp的Cache)提高加载速度和用户体验。 - 布局设计:例如使用GridLayoutManager展示视频缩略图。 在整个项目开发过程中,Android Studio提供了调试工具...
Material Design不仅改变了用户界面的外观,还规范了UI元素的行为和交互方式,使得应用程序在不同设备上具有一致的用户体验。 其次,Android 5.0引入了ART(Android RunTime)作为默认的运行时环境,取代了原来的...
`android-support-v4`库的AsyncTask类使得开发者能够在低版本的Android设备上使用异步任务,进行后台计算并在UI线程上更新结果,提高用户体验。 **BroadcastReceiver和PendingIntent** BroadcastReceiver是Android...
- 应用程序需要遵循Android的Material Design指南来提供一致的用户体验。 - 使用Android Studio作为集成开发环境,利用其提供的各种工具进行代码编写、调试和打包发布。 - 需要理解Android的组件模型,如Activity...
在本毕业设计中,我们将对 Android 手机新闻 app 软件的开发制作进行研究,设计和实现一个通用的 Android 新闻浏览 app,满足用户对新闻获取信息的需求,提高用户体验,提高开发者的技术和经验。
Android 9,代号Pie(Android P),是Google在2018年发布的一个重要的操作系统更新,为Android设备带来了多项新特性...同时,理解和遵循Android 9的新规范和最佳实践,将有助于创建符合最新标准且用户体验优秀的应用。
Android 5.0(代号Lollipop)是Google在2014年推出的一个重大更新,它对Android系统进行了许多重要的改进和优化,不仅提升了用户体验,也增强了开发者的工作效率。Android SDK Platforms 21包含了开发Android 5.0...