一种简单的 Android UI 优化方法
2011-12-27 11:43
543 查看
相比于iPhone 用户界面,Android实在是有不少可以优化的地方,这里我们先来简单的研究一下如何在不大规模修改Android源码的情况下来优化Android的UI。
将当前的Android UI 框架进行简化并标示出UI优化思路,如下图所示:
基本的思路就是: 将Android 代码用于实现 java ui api的jni层代码进行优化,对上层提供的jni接口不变,但是在这些jni接口的实现内部我们可以添加一些UI的特效操作。
优点:
1) 透明性: 因为是在jni层进行UI优化,所以对于上层的app 依然是调用android java api 来进行ui的显示,并不需要关心底层的UI 是如何优化的。
2) 性能: 在UI优化的jni代码中直接使用C/C++来操作opengles/skia api 来进行UI的渲染,可以充分保证性能。
3) 非侵入: Android内部用于提供给上层java api 的jni实现以动态链接库的形式提供。基于这一点,优化后的ui jni层也可以使用动态链接库的形式提供并提供并与原生的jni动态链接库一致的接口,这样,当然后使用优化之后的UI效果时,只需要将Android对应的原生动态链接库进行替换即可,而使用优化的UI效果的上层android java app并不需要做任何的改动,简单高效。
4) 易于操作: 基于这种方案,当需要进行UI优化时,并不需要刷机,只需要替换系统中对应的组件即可。
缺点:
1) 实现难度: Android 底层用于java ui实现的jni层的实现有一定的代码量,对这些代码的修改和调试有一定的难度。
2) 可移植性: Android当前的版本一直在演进中,底层的jni ui 实现也对应有变动,这使得优化工作必须长期同步进行,当然了,并没有一劳永逸的解决方案了:)
将当前的Android UI 框架进行简化并标示出UI优化思路,如下图所示:
基本的思路就是: 将Android 代码用于实现 java ui api的jni层代码进行优化,对上层提供的jni接口不变,但是在这些jni接口的实现内部我们可以添加一些UI的特效操作。
优点:
1) 透明性: 因为是在jni层进行UI优化,所以对于上层的app 依然是调用android java api 来进行ui的显示,并不需要关心底层的UI 是如何优化的。
2) 性能: 在UI优化的jni代码中直接使用C/C++来操作opengles/skia api 来进行UI的渲染,可以充分保证性能。
3) 非侵入: Android内部用于提供给上层java api 的jni实现以动态链接库的形式提供。基于这一点,优化后的ui jni层也可以使用动态链接库的形式提供并提供并与原生的jni动态链接库一致的接口,这样,当然后使用优化之后的UI效果时,只需要将Android对应的原生动态链接库进行替换即可,而使用优化的UI效果的上层android java app并不需要做任何的改动,简单高效。
4) 易于操作: 基于这种方案,当需要进行UI优化时,并不需要刷机,只需要替换系统中对应的组件即可。
缺点:
1) 实现难度: Android 底层用于java ui实现的jni层的实现有一定的代码量,对这些代码的修改和调试有一定的难度。
2) 可移植性: Android当前的版本一直在演进中,底层的jni ui 实现也对应有变动,这使得优化工作必须长期同步进行,当然了,并没有一劳永逸的解决方案了:)
相关文章推荐
- 分享一种最简单的Android打渠道包的方法
- Android UI优化之ViewStubs使用方法
- 分享一种最简单的Android打渠道包的方法
- 一种简单强大很囧的优化方法
- Android学习心得① - GridView设置分割线的一种简单方法
- 分享一种最简单的Android打渠道包的方法
- .NET20 一种简单的窗口控件UI状态控制方法
- android中EditText如何设置取消自动聚焦的一种简单方法
- 在大数据情况下MySQL的一种简单分页优化方法
- .NET2.0 一种简单的窗口控件UI状态控制方法
- 关于ionic2打包android时gradle下载不了的解决方法(附:简单优化启动速度彩蛋)
- Android多点触摸手势滑动的一种简单方法
- .NET20 一种简单的窗口控件UI状态控制方法
- 从dct简单了解一种线性汇编优化方法
- android 不同型号的终端的UI适配--一种解决方法
- .NET20 一种简单的窗口控件UI状态控制方法
- 在大数据情况下MySQL的一种简单分页优化方法
- Android百度地图一种简单实现多标注及响应时间的方法
- Android 处理子线程与UI交互的简单方法runOnUiThread
- 从dct简单了解一种线性汇编优化方法