摘要:

近年来,智能手机的流行使得越来越多的人选择手机作为社交和聊天的主要工具,手机输入法也在市场需求推动下应运而生.随着当今软件多元化的发展,输入法程序也需要换肤和定制化的功能,为了使多平台输入法兼容皮肤数据文件,设计一个跨平台皮肤引擎的架构和一组抽象控件,是解决此问题的最好方法,所以输入法项目组提出了皮肤引擎的需求. 论文以当前软件引擎行业的发展为基础,软件复用技术为背景,分析了当前Android平台的发展趋势和扩展支持的现状,总结出目前对于输入法皮肤引擎的要求.从技术角度介绍了提升内存使用率,优化软件内存性能的LRU算法的内存管理技术,以及为了加快绘制速率提升软件绘制性能的双缓存技术和局部双缓存技术,并为之后的多平台实现和发现提供了参考和依据. 本文使用Java语言开发了皮肤引擎,其设计上分为七个模块:皮肤文件,控件的分类和构成,控件的绘制,控件的事件判断,键盘切换和换肤策略.其中皮肤文件部分介绍了皮肤引擎中数据来源的皮肤文件数据格式.控件的分类和构成讲解了皮肤引擎中定义的一套抽象的控件组成和分类.控件的绘制和控件的事件判断作为皮肤引擎中界面显示和事件传递的重要组成部分.控件的绘制速率会直接影响按键响应时间,所以优化控件绘制成为皮肤引擎性能优化的关键.通过增加字符串缓存池减少字符串拼接带来的性能损失,同时将相同的按钮背景进行局部缓存,建立渲染绘制和贴图绘制转换的映射表,节省内存存储空间,提升绘制效率.通过上述的设计,系统解决了瓶颈问题,满足了性能上的需求,提升了用户体验. 经过实际的测试,证明了本系统完成了对皮肤数据文件的逆序列化解析,并且实现绘制和传递机制.建立了一整套可以跨平台的抽象架构和控件组成,能够与输入法引擎和输入法配置系统在Android上的结合,能够实现换肤和自定义皮肤的功能,满足皮肤引擎性能需求和功能性的需求,具有较高的复用性和实用价值.

展开

android原生输入法皮肤,面向Android平台的输入法皮肤引擎的设计与实现相关推荐

  1. android 入侵检测系统,面向Android智能手机异常入侵检测的在线学习算法.DOC

    面向Android智能手机异常入侵检测的在线学习算法 页码 计算机应用研究 第28卷收稿日期:2014-00-00:修回日期: 基金项目:基金项目1全称(基金项目号):基金项目2全称(基金项目号):作 ...

  2. android原生代码转h5,Android原生和H5交互;Android和H5混合开发;WebView点击H5界面跳转到Android原生界面。...

    当时业务的需求是这样的,H5有一个活动商品列表的界面,IOS和Android共用这一个界面,点击商品可以跳转到Android原生的商品详情界面并传递商品ID:  大概就是点击H5界面跳转到Androi ...

  3. android原生手电筒,统一的android原生相机和手电筒同时

    我需要在Unity Engine中使用Android设备的原生相机 . 我已经尝试使用WebCamTexture,但我需要同时使用Android手电筒,并且当手电筒启动时WebCamTexture会冻 ...

  4. 通过 Android SDK Manager 安装面向 Android* 模拟器插件的英特尔® 凌动™ x86 系统映像...

    作者:hernan-alijo Android* x86 模拟器映像插件要求安装 Android SDK.有关 Android SDK 安装说明,请参考 Android 开发人员网站 (http:// ...

  5. android原生砸蛋功能开发,Android

    在一关一关的不断磨练和熟能生巧之后,玩家们需要做的就是不断的让每一关都能获得高分数和至少三星的游戏效果,不然以后获得金蛋的机会就很少.此外,砸金蛋也是有技巧和方法需要知道的,而不是盲目的将游戏从头体验 ...

  6. Android开发工具链ppt,介绍Android原生开发工具包r14

    原标题:介绍Android原生开发工具包r14 现在,可以下载最新版本 Android 原生开发工具包 (NDK)--Android NDK r14.也可以通过 Android Studio 在 SD ...

  7. 介绍Android原生开发工具包r14

    现在,可以下载最新版本 Android 原生开发工具包 (NDK)--Android NDK r14.也可以通过 Android Studio 在 SDK 管理器中下载此版本: https://dev ...

  8. uniapp android原生,在uni-app项目中集成Android原生工程

    [TOC] # 在uni-app项目中集成Android原生工程 按照官方的方案,我们如果进行本地打包的话,需要重新创建一个Android原生工程,于是就会导致我们管理多个项目,切来切去的也麻烦. 经 ...

  9. android万能开关,Android原生开关组件

    Android原生Switch 众所周知,Android原生提供了两种开关组件,toggleButton和Switch,这两个因为仿苹果的原因我很少使用.真正用到项目里大概也就两次,体验并不好,最近被 ...

最新文章

  1. 单片机学不会怎么办?单片机从哪里开始学?
  2. 漫画:产品经理的这些“谎言”,你一定中招过!!!
  3. 【NodeJS 学习笔记04】新闻发布系统
  4. C++ 指向常量的指针与指针类型的常量
  5. 设置按峰值带宽计费_腾讯云服务器按流量计费带宽值大小设置说明
  6. delphi开发日志——基窗体,使用面向对象编程的编程思想创建基类
  7. GraphAPI 1.0中新增加的Teams API
  8. Mysql CMAKE编译参数详解
  9. 海上瓶子下有东西吗_放置在车内的饮用水,经过暴晒后,还能喝吗?有异味,是毒素吗?...
  10. GOOGLE卫星地图贴图错误一例
  11. 【C++学习笔记】密码转盘锁解题,记录开锁步骤
  12. 计算机应用选购哪些电脑,如何选购笔记本电脑 购买笔记本的8个技巧
  13. php 支付宝验签失败,支付宝移动支付,服务端对异步通知信息验签的时候验签失败...
  14. Linux系统备份及迁移到新硬盘
  15. 三维城市建筑模型生产工具《geobuilding1.0》2022.03.25
  16. java appdata_纯手写!!转移系统用户资料和更改AppData路径的方法 不接受反驳!...
  17. 64马8赛道取前4问题
  18. 人脸活体检测:活体检测数据集
  19. 13_Pinia组件库
  20. 【2019.11.27】EM算法详细推导

热门文章

  1. Windows 11 安装后必备软件
  2. jdk1.8、jre1.8运行环境下载安装与环境配置
  3. C语言练习二 :找出一个二维数组的鞍点
  4. 【JNU】网络配置大题详解(E口与G口两种类型)
  5. c语言叶子,用C语言画的一片叶子
  6. 通信——大学专业课程
  7. UE4骨骼网格体没有影子
  8. 青少年编程-Python之扑克牌第十幕
  9. apache-通用语言库commons-lang
  10. 【CSDN|每日一练】吃!吃!吃!