`

[程序猿感悟] Android平台开发中的重构三步走

阅读更多

我们都知道,技术是优质产品的必要条件,要满足用户不断变化的需求,必须有弹性的技术实现框架;android开发平台正是提供给开发者一个清晰且有弹性 的架构,正如我们在eclipse开发环境中心建一个android开发项目时,生成的不同文件夹,如src是存放源代码的目录,res是存放资源的目 录,这就是为了单纯化界面修改模式,将界面描述部分的程序代码,抽取到程序外部的xml说明文件中。简而言之,即java+xml结构。

    这样做不仅增加了程序的可读性,更重要的是实现了界面与逻辑程序的脱离,便于我们修改与维护,当然,为了延续甚至程序这方面的性能,我们应该做好程序的重 构,重构代码即在反复的检查或者读代码的过程中,通过一些小的改变来增加代码的可读性和可维护性,罗马不是一天建成的,代码不是写一次就可以做到优化的, 所以做好量变的过程,即每天做好代码的重构,才能使代码出现质变,形成可读性的和可维护高的优化的代码,个人看来,重构有时是举手之劳,有时却包含着更加 深奥的架构设计模式,有时是我们程序的扩展,有时却是简化,但无论我们做什么,总之,程序会更加完美。

第一步:举手之劳的重构,简单却必——将字符串抽离到xml

    相信开发者都会有这样的经验,在编写程序的时候,我们会先处理xml的部分,然后编写并调试java部分代码,在调试过程中,我们也许会声明一些用于界面 显示的string变量,而在程序可以按我们的要求跑起来的时候,我们常会忘了string本来应该被抽取到res/values目录下的 strings.xml文件中,但我们恰恰忘了,于是用于显示的这个string就被“临时”的“永久”保存在我们的逻辑程序中,这显然违背了 android架构,所以,举手之劳的重构,将字符串抽离到xml中,简单却必要。其必要性也会在本文的后文中有所体现。

第二步:使用架构设计模式的重构——android平台中应用的MVC模式

    我们在android平台开发中也用到一些常用的架构设计模式,尤其是MVC模式,MVC模式指的是将程序组成分成三个主要部分,分别是存储内容的 “model(模型)”,负责显示的“view(视图)”,控制程序逻辑操作的“Controller(控制器)”,我们进行开发时应该将这三个部分分割 开来,来增加我们程序代码的可读性,进而便于维护。“controller”部分负责处理各种主要的运算工作,例如根据用户在“view”中的各种操作, 从“model”中提取数据,从而把其中的视觉元素传给“view”,将数据的修改部分修改在“model”中。

   Android平台中的java+xml模式实际上已经很像是MVC模式,然而,我们在编写java代码中,也要延续这种风格,甚至将它发扬光大,可以 想象,在同一个界面中多添加一些按钮和字段后“onCreate”这个函数会像长篇小说一样让人不忍多看一眼,我们不妨将其中的一部分抽离出来,不如就使 用MVC模式对部分代码进行封装,我们将“声明和查找组件”部分抽离出来,封装成findViews函数,声明和查找组件部分就是像这样的代 码:updateButton =(button)findViewById(R.id.update)//按id在界面中寻找updateButton这个组件,另一部分就是“为特定 界面组件添加控制流程”,如给按钮增加Listener这种事件函数等。

第三步:增加软件功能——国际化和其他

     Java中有一些支持国际化的特性,包括统一的编码,地区类Locale,并且利用类ResourceBundle将地区特征的信息从程序中分离出 来,在android的开发框架中也给我们提供了的支持多国语言的办法,正如我们第一步中做的,我们将负责显示字符串抽离到string.xml中,然后 我们可以创建同样的string.xml只是把原来的显示语言换成其他我们需要的,如中文换成英语,然后将中文(简体)的string.xml的目录换成 res/values-zh-rCN,将英文的string.xml的目录换成res/values-en,这样重新运行就可以支持多国语言我们只需在 java程序中的onCreate程序块中添加如下代码便可实现:

首先使用Resources res =getResources();获得资源对象,接着使用Configuration conf = res.getConfiguration();取得设置对象,然后使用conf.locale = Locale.SIMPLIFIED_CHINESE;将我们的语言,最后将我们的配置显示出来DisplayMetrics dm = res.getDisplayMetrics();Res.updateConfiguration(conf,dm);

当然我们也可以做成选项,然用户自己来选择。

最后,增加软件功能的努力也不仅只有国际化,还有让程序能适应不同的屏幕方向,显示方式和浏览方式等等。也有对我们的程序做减法,去掉冗余的部分。总之,考虑用户的使用,让用户获得更好的体验是我们的目标。
我只是简单介绍了一下我在android开发中使用的一些重构技巧,当然重构的方向远不止如此,还有统一的命名方法等方法,这里就不再赘述。正如开篇时提 到的,android开发平台给我们提供了非常清晰的架构,我们在开发中要利用好它使我们的代码更好读,程序更好用,这才是作为一个开发者最需要做的,每 天做一下小的改进,日久天长,我们的程序就会朝这个目标迈进,希望所有开发者都能有更好的应用。

分享到:
评论

相关推荐

    Android程序猿面试秘籍

    Android程序猿面试秘籍,真正的面试题库,Android程序猿面试秘籍

    程序猿笔记Android源码

    如果大家有时间可以和我一起开发,一个人精力毕竟有限,如果你是个初学者,做完这个项目7k工作应该不成问题! 本项目仅供学习参考,不可作为商业用途,违权必究。 新版本更新后会继续开放给大家,详情关注播客。

    Android项目源码安卓程序猿面试复习APP

    这个项目源码提供了一个全面的学习平台,帮助开发者巩固和提升Android开发技能,以更好地应对各种面试挑战。通过深入研究这份源码,我们可以学习到许多关键的Android知识点。 首先,源码中包含了Android应用的基本...

    程序猿ProMonkey v2.03.rar

    程序猿(ProMonkey)是一款基于WEB的轻量级程序员个人辅助工具 [ 更新日志 ]. 程序猿ProMonkey V2.03 Build 20130404 1.修正部分函数细节问题 2.完善安装页面 3.增加附件上传格式支持 4.修正图片/附件上传路径...

    程序猿大战Python-开发第1个Python程序

    "程序猿大战Python-开发第1个Python程序"这个主题,旨在引导初学者迈入Python编程的世界,通过实际操作开发第一个Python程序来熟悉语言的基本用法。 首先,我们需要了解Python的安装。Python通常提供官方的可执行...

    Java程序猿技术路线图

    Java 程序猿技术路线图 在技术方面,无论我们怎么学习,总感觉需要提升自己不知道自己处于什么水平了。但是,如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平。 Java ...

    程序猿ProMonkey v2.03

    程序猿(ProMonkey)是一款基于WEB的轻量级程序员个人辅助工具。   程序猿ProMonkey V2.03 Build 20130404更新日志 1.修正部分函数细节问题 2.完善安装页面 3.增加附件上传格式支持 4.修正图片/附件上传...

    java程序猿必备开发文档

    以下是一些Java开发中核心的知识点,这些知识点在"java程序猿必备开发文档"中可能会涵盖: 1. **Java语法基础**:包括变量、数据类型、运算符、流程控制(如if-else,switch,循环)、函数和类等。理解这些基础概念...

    安卓程序猿小说v1029纯净版

    【安卓程序猿小说v1029纯净版】是一款专为Android用户设计的免费小说阅读应用,它提供了海量的小说资源,旨在为读者带来极致的阅读体验。在这款软件中,用户可以一键搜索全网范围内的百万本小说,极大地拓宽了阅读的...

    程序猿专属表情包

    在IT行业中,程序员,或常被称为“程序猿”,是一群以编写代码为生的专业人士。他们用编程语言构建软件、网站、应用程序等,为数字化世界提供了基石。而在这个高度技术化的领域,程序员们逐渐发展出一种独特的文化,...

    Android-猿匹配——国内首个程序猿非严肃婚恋交友应用让我们一言不合就来场匹配吧

    "猿匹配"作为一个程序猿非严肃婚恋交友应用,其背后的技术实现是Android开发的典型应用案例。这个应用不仅涉及到基本的用户界面设计、数据存储与同步,还可能包括社交功能、地理位置服务以及个性化推荐算法等复杂...

    Android-JAVA平台开发环境搭建

    Android-JAVA 平台开发环境搭建是一个复杂的过程,需要按照步骤安装和配置 JDK、Eclipse、Android SDK、ADT 和 AVD 等工具,旨在建立一个完整的 Android 开发环境,帮助开发者快速开始 Android 应用程序的开发。

    程序猿ProMonkey 2.03.rar

    程序猿(ProMonkey)是一款基于WEB的轻量级程序员个人辅助系统。 程序猿ProMonkey 2.03 更新内容: 1.修正部分函数细节问题 2.完善安装页面 3.增加附件上传格式支持 4.修正图片/附件上传路径 [ ...

    一只程序猿告白的网页(转)

    在这个标题中,我们可以看到一个程序员,通常被称为“程序猿”,利用自己的技术技能制作了一个特别的告白网页。这涉及到以下IT知识: 1. **网页开发**:告白网页的创建基于HTML、CSS和JavaScript等基础技术,这是...

    android开发-智能聊天机器人

    【标题】"Android开发-智能聊天机器人"是一个关于在安卓平台上构建聊天机器人的项目,它旨在教授开发者如何利用Android技术创建交互式、智能化的应用。在这个项目中,开发者将学习到如何设计用户界面,以及如何集成...

    2016年 年度个人总结程序猿

    ### 2016年度个人总结程序猿的关键知识点 #### 一、技术层面的收获 1. **需求分析** - **重要性认知**:在项目执行过程中,深刻认识到不可低估任何项目的规模,即便是看似小型的项目也需投入充分的关注与细致的...

    程序猿的爱情 love.rar

    在IT行业中,程序员,我们亲切地称为“程序猿”,是一个充满智慧和技术热忱的群体。他们的生活往往被编码、算法和逻辑填满,但正如标题“程序猿的爱情”所示,他们同样有着情感世界,有着追求爱情的权利和经历。在这...

    程序猿(ProMonkey)轻量级WEB辅助程序 v1.0.rar

    程序猿(ProMonkey)是一款基于WEB的轻量级程序员个人辅助系统。 [ 安装方法 ] 运行install.php 根据提示进行安装 默认用户名:admin 密码:admin 请登录后进入用户中心更改! [ 程序特色 ] 1、界面友好 ...

    一个程序猿赚钱平台,平台内包含平台内包含商城、社区团购、OA、ERP、SAAS、B2C、CMS、CPS.zip

    一个程序猿赚钱平台,平台内包含平台内包含商城、社区团购、OA、ERP、SAAS、B2C、CMS、CPS、官网(门户店)、餐饮外卖、社交通讯、游戏、财务、直播、短视频、智能工具、配送跑腿、知识付费、视频授课等多种系统,...

Global site tag (gtag.js) - Google Analytics