Android中级第十二讲项目架构配置

简介:  本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 架构这个话题比较大;从组织结构来说,CEO是一家公司的架构师,将公司划分为销售部、市场部、技术部、行政部、财务部、客服部等,每个部门履行特有的职能并相互配合,最终实现“产品”的有效输出;技术架构也同样如此。


 本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!


架构这个话题比较大;从组织结构来说,CEO是一家公司的架构师,将公司划分为销售部、市场部、技术部、行政部、财务部、客服部等,每个部门履行特有的职能并相互配合,最终实现“产品”的有效输出;技术架构也同样如此。

项目架构主要目的是解耦、灵活开发,让后端成为产品的瓶颈,而不要让客户端成为产品的瓶颈,所有的业务均
可实现“热加载”;大的项目需要进行插件式开发,必须减少依赖关系,这样编译和执行才会快,用户体验才会好。

问题:

1、如何保证http请求从App这里拿到相应的缓存数据,而不再请求服务器?

客户端与服务端商定Get请求的时效,可以有效解决部分并发问题。

Android项目框架升级尝鲜OkHttp

2、应用如何保活?

Android初级第八讲之应用如何保活

3、如何优化电量和内存?

      Android高级之十二讲之内存、电量、卡顿、流量

4、安全问题:定制执行特定操作、目录白名单、灰度发布等方式来安全加载应用。

5、缓存问题:LruCache-Least Recently Used Cache,清除最近最少使用的缓存。

原理:设计缓存大小,使用LinkedList存取数据;get时使用数+1,put时使用数+1,同时监测内存是否超界;

如果超界,则开启死循环,清除最少使用的缓存(通过linkedHashMap的eldest找到),然后bread;继续。

Android高级之十三讲之安全方案

灰度发布:

主要是A/B测试,分功能模块、地区、用户比例来测试,同时可以及时停止测试,防止意外发生,同时又

避免影响线上用户体验。

其次对比实验,用数据来确定采用哪套方案。


架构的主要工作有哪些?

0、构造设计模式,MVC、MVP或MVVM,数据存取、网络工具、加载过程等实现。

1、设计基础功能模块

就像生活必备水电煤、米油盐一样,有这些日子才能过起来,项目也一样。设计模式、组件通信、加载过程、网络框架、图片框架、线程池管理、UI框架、必要组件、必要功能、基础组件等均在初期需要制订。

2、设计基本功能模块

细化项目框架和组件,以及样式,设计项目的核心功能,分配功能模块,灵活设计可插拔模块

3、减少业务耦合度

AOP思想,面向切面编程,即专注处理自身模块,通过scheme来告诉外界自己的功能,通过Filter来过滤可以处理细化的信息。

Android中可以使用RxBus和自定义路由来实现。

Otto据说比EventBus、handler、BroadcastReceive和interface更简单,回头要研究一下。

将订阅者及内部的方法以键值对的形式存入RxBusFactory,事件源发送事件根据消息类型交由不同的订阅者处理。

4、保持调用灵活性

接口和类要全面适配,如参数类型、参数数量、API版本、so库支持等


5、良好的编译工具和打包工具

编译工具:Android最佳编译工具介绍

打包工具:Ant、Gradle、Python三种打包方式的介绍

Gradle加速编译:http://droidyue.com/blog/2017/04/16/speedup-gradle-building/index.html



Lint用于找出应用中的异常以及不规范的操作

http://tech.meituan.com/android_custom_lint.html

https://github.com/shwenzhang/AndResGuard

6、项目管理工具,建议用Git,跟Svn的最大区别在于:分布式管理,每个人的电脑都是服务器。

Git教程及问题解析

架构师的修养:阿里中间件需要怎样的架构师?

Live地址:知乎

服务搭建:https://www.diycode.cc/topics/738

FindViewById的快速工具:http://www.cnblogs.com/klcf0220/p/5924440.html

谷歌开源检查应用错误工具:Error-prone

markdownpad:

先安这个: http://markdownpad.com/download/awesomium_v1.6.6_sdk_win.exe

再安这个:http://markdownpad.com/

MVVM:http://download.csdn.net/detail/liuxian13183/9884386


网站使用www.example.com和example.com的区别:

后者携带该网站所有cookie信息,不够安全;一般通过301设置,将后者跳到前者。一方面有利于统计访问(对SEO无影响),另一方面不会给用户造成困扰(后者未作配置,无法访问)。

Fiddler使用:保证手机网络和电脑网络处于同一个路由下面,同一个IP段。


目录
相关文章
|
13天前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
54 1
|
15天前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
51 2
|
15天前
|
存储 前端开发 Java
Android MVVM架构模式下如何避免内存泄漏
Android采用MVVM架构开发项目,如何避免内存泄漏风险?怎样避免内存泄漏?
50 1
|
16天前
|
XML Java 数据库
安卓项目:app注册/登录界面设计
本文介绍了如何设计一个Android应用的注册/登录界面,包括布局文件的创建、登录和注册逻辑的实现,以及运行效果的展示。
66 0
安卓项目:app注册/登录界面设计
|
14天前
|
存储 分布式计算 Hadoop
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
35 2
|
15天前
|
前端开发 Java 测试技术
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
13 2
|
15天前
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
|
16天前
|
Java Android开发 Windows
玩转安卓之配置gradle-8.2.1
为安卓开发配置Gradle 8.2.1,包括下载和解压Gradle、配置环境变量、修改配置文件以增加国内镜像,以及在Android Studio中配置Gradle和JDK的过程。
42 0
玩转安卓之配置gradle-8.2.1
|
8天前
|
前端开发 JavaScript 测试技术
Kotlin教程笔记 - 适合构建中大型项目的架构模式全面对比
Kotlin教程笔记 - 适合构建中大型项目的架构模式全面对比
19 0
|
9天前
|
存储 消息中间件 前端开发
.NET常见的几种项目架构模式,你知道几种?
.NET常见的几种项目架构模式,你知道几种?