去年10月底换到了新公司,做移动研发组的负责人,刚开始接手android项目时,发现该项目真的是一团糟.首先是其架构,是按功能模块进行划分的,本来按模块划分也挺好的,可是,他却分得太细,总共分为了17个模块,而好几个模块也就只有两三个类而已.但应用本身其实比较简单,要按功能模块来分的话,最多五个模块就够了.另外,有好多模块划分也很模糊,也有很多类按其功能其实可以属于多个模块的,也有些类定义不明确,做了不该做的事.有时候,我要找一个界面的Activity,按照其功能应该属于A模块的,可是在A模块里…
前两篇文章Android项目重构之路:架构篇和Android项目重构之路:界面篇已经讲了我的项目开始搭建时的架构设计和界面设计,这篇就讲讲具体怎么实现的,以实现最小化可用产品(MVP)的目标,用最简单的方式来搭建架构和实现代码. IDE采用Android Studio,Demo实现的功能为用户注册.登录和展示一个券列表,数据采用我们现有项目的测试数据,接口也是我们项目中的测试接口. 项目搭建 根据架构篇所讲的,将项目分为了四个层级:模型层.接口层.核心层.界面层.四个层级之间的关系如下图所示:…
在前一篇文章<Android项目重构之路:架构篇>中已经简单说明了项目的架构,将项目分为了四个层级:模型层.接口层.核心层.界面层.其中,最上层的界面,是变化最频繁的一个层面,也是最复杂最容易出问题的一个层面,如果规划不好,很容易做着做着,又乱成一团了. 要规划好界面层,至少应该遵循几条基本的原则: 保持规范性:定义好开发规范,包括书写规范.命名规范.注释规范等,并按照规范严格执行: 保持单一性:布局就只做布局,内容就只做内容,各自分离好:每个方法.每个类,也只做一件事情: 保持简洁性:保持代…
Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具 记得我的第一篇博客就是写Android Studio,但是现在看来还是有些粗糙了,所有重构了一下思路,覆写了一篇 Google主推-Android开发利器--Android Studio,这可能是最全的AS教程! Android Studio,自Google2013年发布以来,就倍受Android开发者的喜爱,我们本书,就是基于Android Studio来进行案例演示的,大家都知道,Android…
Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题.这组缺陷模式是可配置的,通过配置,可以过滤掉一些我们不想或不需要检测的问题. findbugs在gradle中的配置 理论的部分就不多阐述了,我们直接来看看项目中怎么使用findbugs吧. 首先,在build.gradle引入findbugs插件 <code class="hljs bas…
版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/6823777.html 前言 大家好,我是Cavalier,这次和大家分享的是,重构 Android App,我在以往所接触的项目中,大部分的项目都是毫无架构所言,最近我在阅读_包建强<App研发录>,刚好开到所需的重构思想,在此做下记录. #1.1重新规划App项目结构 重新规划Android项目结构 1.新建AndroidLib类库,将于业务无关的逻…
<android从程序员到架构师之路>YY讲坛活动:  sundy携手高焕堂老师全程YY答疑 与大师一起,分享android技术 时间:7月21日下午2:00   报名联系QQ:2224343088 YY报名地址:http://www.yy.com/gc/activity?aid=7855026 Android发展多年的今天,很多工程师都遇到职业发展瓶颈了,不知道如何向上走 ,因此麦可网联合台湾Android教父高焕堂老师推出了<Android架构师之路>这套国内唯一的课程,通过这…
环境搭建好了,最简单的app也运行过了,那么app到底是怎么运行在手机上的,手机又到底怎么能运行这些应用,一堆的电子元器件最后可以运行这么美妙的界面,在此还是需要好好研究研究.这里从芯片及硬件模块->linux内核驱动->hal层->jni->android framework层->android app做个简单的介绍. 1.芯片及硬件模块 就像人脑,电脑的cpu一样,android手机也需要一个中央处理器,那便是主控芯片.一般电脑的cpu是intel或者amd的,但是and…
Android项目刮刮奖详解(四) 前言 我们已经成功实现了刮刮奖的功能了,本期是扩展篇,我们把这个View直接定义成开源控件,发布到JitPack上,以后有需要也可以直接使用,关于自定义控件的知识,不了解的同学可以看这下面我之前写的这两篇 Android 自定义控件 Android开发--发布第三方库到JitPack上 实现 定义属性 text 文字内容 textColor 文字颜色 textSize 文字大小 paintSize 擦除效果的宽度 messageBackground 中奖图片…
中小研发团队架构实践之生产环境诊断工具WinDbg 生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具,Dump文件类似于飞机的黑匣子,记录着生产环境程序运行的状态.本文主要介绍了调试工具WinDbg和抓包工具ProcDump的使用,并分享一个真实的案例.N年前不知谁写的代码,导致每一两个月偶尔出现CPU飙高的现象.我们先使用ProcDump在生产环境中抓取异常进程的Dump文件,然后在不了解代码的…