架构/框架
文章平均质量分 90
LVXIANGAN
这个作者很懒,什么都没留下…
展开
-
Android之启动流程、虚拟机加载流程、代码执行顺序
本文旨在帮助初学Android 开发的朋友了解各种基本流程,有不当之处,欢迎指正。开发App流程环境搭建--->编码--->编译--->打包输出---->安装应用--->运行应用环境搭建:就是安装开发软件(如JRE、Android Studio 、 Eclipse); 编码:新建工程,编写代码,例如写个hello world的demo; ...原创 2017-08-07 18:08:42 · 2651 阅读 · 0 评论 -
iOS之热更新/热修复JSPatch 补丁更新管理
总结:1、在传输过程中对JS文件进行了RSA签名加密;2、下载完脚本保存到本地时,应进行简单的对称加密,每次读取时解密;3、建议js脚本的增、删、改、查的内容在同一个js文件处理,只下载一个文件就OK。继上一篇了解工作原理后,这篇谈谈一下自行搭建管理后台实现补丁更新的基本思路。先假设遇到以下问题:App发行了两个版本,V1.0和V2.0,上线投产后...原创 2017-11-03 17:58:15 · 664 阅读 · 0 评论 -
MVC、MVP 和 MVVM 的图示
复杂的软件必须有清晰合理的架构,否则无法开发和维护。MVC(Model-View-Controller)是最常见的软件架构之一,业界有着广泛应用。它本身很容易理解,但是要讲清楚,它与衍生的 MVP 和 MVVM 架构的区别就不容易了。昨天晚上,我读了《Scaling Isomorphic Javascript Code》,突然意识到,它们的区别非常简单。我用几段话,就可以说清。一、MV...转载 2018-02-06 16:06:06 · 266 阅读 · 0 评论 -
Android之系统架构
Android架构android应用开发框架由4部分组成,分别是:Linux Kernel:Linux内核与驱动 Libraries 和 Android Runtime:C/C++本地库、Android运行时环境 Application Framework:Java应用程序框架 Applications:Java应用程序更新:新增了 HAL层A...原创 2018-12-03 10:57:48 · 909 阅读 · 0 评论 -
Android之四大组件
应用程序组件是一个Android应用程序的基本构建块。这些组件由应用清单文件松耦合的组织。AndroidManifest.xml描述了应用程序的每个组件,以及他们如何交互。Android中称为四大组件的为别为:Activity、Service、BroadCast Recevicer、Content providerActivity:activity是用户和应用程序交互的窗口,一个acti...转载 2018-12-03 11:21:09 · 451 阅读 · 0 评论 -
Android之Zygote介绍
在Android系统中,应用程序进程都是由Zygote进程孵化出来的,而Zygote进程是由Init进程启动的。Zygote进程在启动时会创建一个Dalvik虚拟机实例,每当它孵化一个新的应用程序进程时,都会将这个Dalvik虚拟机实例复制到新的应用程序进程里面去,从而使得每一个应用程序进程都有一个独立的Dalvik虚拟机实例。 Zygote(受精卵),是Android中最重要的一个进...原创 2019-01-11 16:47:01 · 2257 阅读 · 0 评论 -
Android之Activity基类封装
视图相关一般的Activity里都会用到很多的findViewById这个方法,而且每次都要强制类型转换,这样会显得很繁琐,如果在BaseActivity里封装好,就能省事:protected <T extends View> T findView(int id) { return (T) findViewById(id);}这样只要是继承了BaseActivi...转载 2019-01-15 10:24:01 · 1195 阅读 · 0 评论 -
Android之注解、APT、android-apt 和 annotationProcessor 的区别
APT、android-apt 和annotationProcessor 的区别APT是什么? apt是 Annotation Processing Tool 的缩写,顾名思义,就是注解处理工具,用于编译时对注解进行解析,自动生成代码,并编译代码生成class文件,大体就是这个过程。 android-apt是什么? android-apt是第三方开源的注解处理框架,因为一开始Andro...原创 2019-03-08 14:51:59 · 3133 阅读 · 0 评论 -
给 Android 开发者的 RxJava 详解
该文基于RxJava 1.0,发表于2015年,看起来有点老远了,但对刚入门学习RxJava的新手来说,依旧是为数不多的教程精华,故转之。RxJava2其实和它如出一辙,仅仅是API有所变化。前言我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 。而...转载 2019-03-04 11:31:45 · 290 阅读 · 0 评论 -
Android 开源网络框架(Android-Async-Http、Volley、OkHttp3、Retrofit2.0)对比
一、为什么要使用网络开源框架1.Android系统自带网络请求Android系统自带的网络请求模块有两个,一个是HttpClient(< Android2.2),另一个是HttpUrlConnection( >=Android 2.3)。1.1. HttpUrlConnectionHttpURLConnection是一种多用途、轻量极的HTTP客户端,使用它来进行H...转载 2019-03-12 00:39:40 · 1117 阅读 · 0 评论 -
Android之插件化开发
个人认为:2017年手淘Atlas插件化项目的开源标志着插件化的落幕,2018年Android 9.0上私有API的限制几乎称得上是要退出历史主流。如今的插件化技术朝两个方向发展:其一,插件化的工程特性:模块化/解耦被抽离,逐渐演进为稳定、务实的的组件化方案;其二,插件化的黑科技特性被进一步发掘,inline hook/method hook大行其道,走向双开,虚拟环境等等。虽然...转载 2019-05-14 15:03:16 · 558 阅读 · 0 评论 -
CS架构和BS架构的区别
C/S = Client/ServerB/S = Brower/Server一个基于客户端/服务器,一个基于浏览器/服务器做个简单形象不一定恰当的比喻:C / S = 淘宝App + 服务器B / S = 淘宝PC版网页+ 服务器详细区别:1.硬件环境不同 C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连...原创 2019-05-20 14:27:57 · 730 阅读 · 0 评论 -
Android之Binder 原理剖析
一. 前言这篇文章我酝酿了很久,参考了很多资料,读了很多源码,却依旧不敢下笔。生怕自己理解上还有偏差,对大家造成误解,贻笑大方。又怕自己理解不够透彻,无法用清晰直白的文字准确的表达出 Binder 的设计精髓。直到今天提笔写作时还依旧战战兢兢。Binder 之复杂远远不是一篇文章就能说清楚的,本文想站在一个更高的维度来俯瞰 Binder 的设计,最终帮助大家形成一个完整的概念。对于应用层开...转载 2019-05-21 15:04:46 · 415 阅读 · 0 评论 -
RESTful API 最佳实践
RESTful是目前最流行的 API 设计规范,用于 Web 数据接口的设计。它的大原则容易把握,但是细节不容易做对。本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。一、URL 设计1.1 动词 + 宾语RESTful 的核心思想就是,客户端发出的数据操作指令都是"动词 + 宾语"的结构。比如,GET /articles这个命令,GET是动词,...转载 2019-07-22 15:27:42 · 181 阅读 · 0 评论 -
Android之装饰者模式
在查看ContextWrapper源码时,发现以下用法:这种写法叫装饰者模式,相比于单纯的实现接口,它具备更大的灵活性。// 抽象类接口,规范饼的属性public interface ICake { public String name(); // 名称 public Double money(); // 价格}// 原味手抓饼类public class Plain...原创 2019-08-15 17:02:22 · 283 阅读 · 0 评论 -
iOS之CocoaPods常见问题汇总
习惯了Android Studio开发的朋友一定听说过Gradle,我们可以通过依赖关系,不用下载源码,简单便捷地添加各种第三方库。那么iOS开发有没有类似功能呢?有,那就是我们今天提到的CocoaPods了。 今天不打算长篇介绍CocoaPods了, 简单的说一下用法吧。1、安装 CocoaPods原创 2017-06-20 23:49:09 · 5888 阅读 · 0 评论 -
什么是胖Model和瘦Model?
胖Model (Fat Model):在Model 中对数据根据需要进行处理,让Controller可以直接使用经过处理后的数据。瘦Model(Thin Model):Model中的数据不进行任何处理或修改,原封不动的把服务器返回内容发送给Controller。举例:后台服务器返回时间格式:yyyy-mm-dd hh:mm:ss,但客户端只需要显示yyyy-mm-dd,在胖Mode原创 2017-07-12 17:29:53 · 2087 阅读 · 0 评论 -
iOS与javascript交互总结
苹果自从 iOS2 就推出了UIWebView,说起WebView,我们就不得不提javascript,因为 native > javascript 间的交互,是目前混合开发模式的核心。简单回顾一下各个时期原生代码与javascript通讯的方法:iOS6及之前:使用WebViewJavascriptBridge本质上,它也是通过webview的代理拦截scheme,然原创 2017-10-16 17:51:41 · 929 阅读 · 0 评论 -
Java之23种设计模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模...转载 2017-07-31 16:49:57 · 590 阅读 · 0 评论 -
iOS之GCC,LLVM,Clang三种编译器
我们在代码编译中,经常遇到clang: error: linker command failed with exit code 1 (use -v to see invocation) 错误。那么,clang是什么意思呢?LLVM介绍LLVM(low level virtual machine)是一个开源编译器框架,最早的时候是Illinois的一个研究项目,主要负原创 2017-08-17 00:03:08 · 4919 阅读 · 0 评论 -
iOS之MVVM架构
什么是MVVMMVVM就是在MVC的基础上分离出业务处理的逻辑到viewModel层,即:model层,API请求的原始数据view层,视图展示,由viewController来控制viewModel层,负责业务处理和数据转化,简单来说,就是API请求完数据,解析成model,之后在viewModel中转化成能够直接被视图层使用的数据,交付给展示页面。...转载 2017-07-07 11:21:49 · 722 阅读 · 0 评论 -
我的Android进阶之旅------>Android通用流行框架大全
Android通用流行框架大全1. 缓存名称描述DiskLruCacheJava实现基于LRU的磁盘缓存2.图片加载名称描述Android Universal Image Loader一个强大的加载,缓存,展示图片的库Picasso转载 2017-04-19 16:27:48 · 763 阅读 · 0 评论 -
Android EventBus使用注意事项
在使用EventBus过程中,遇到一个bug:在页面输入金额10元,等待支付时点击取消,跳转回到页面重新输入金额20元,输入支付密码交易成功,在成功结果看到的交易金额居然是10元。在排除静态变量、系统缓存外,逐步把问题焦点指向了EventBus,经过一顿排查,终于锁定了问题所在。原来在取消逻辑分支中,没有解注册EventBus,真的是马虎啊!EventBus虽然简单易用,但在使原创 2017-07-03 16:24:23 · 1858 阅读 · 0 评论 -
Android事件总线分发库EventBus3.0的简单讲解与实践
导语,EventBus大家应该不陌生,EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。反正能帮助我们快速开发,这个确实是个好东西,其实鸿洋大神已经对源码作了一个较全面的剖析了Andro转载 2017-05-26 10:25:22 · 543 阅读 · 0 评论 -
浅谈 SOLID 原则的具体使用
单一职责原则(SRP)开放封闭原则(OCP)里氏替换原则(LSP)接口隔离原则(ISP)依赖倒置原则(DIP)小结SOLID 是面向对象设计5大重要原则的首字母缩写,当我们设计类和模块时,遵守 SOLID 原则可以让软件更加健壮和稳定。那么,什么是 SOLID 原则呢?本篇文章我将谈谈 SOLID 原则在软件开发中的具体使用。单一职责原则(S转载 2016-12-01 10:40:06 · 1217 阅读 · 0 评论 -
Java之设计模式六大原则(2):里氏替换原则
里氏替换原则中说:任何基类可以出现的地方,子类一定可以出现。 肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对转载 2016-11-28 15:53:48 · 545 阅读 · 0 评论 -
Android之MVP架构
Android MVP初探最近Android MVP非常火,特地研究了一翻,至于为什么火,自行百度google我比较喜欢的两点是:业务逻辑与View和Model分离,需求变更的时候修改起来简单方便单元测试未使用MVP程序是这样的Paste_Image.png使用MVP后是这样的Paste_Image.png转载 2016-10-21 10:50:35 · 1916 阅读 · 1 评论 -
android操作系统详细目录结构
\system\app 这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\文件夹中。下面是详细的介绍:\system\app\AlarmClock.apk 闹钟\system\app\AlarmClock.odex\system\app\Browser.apk 浏览器转载 2016-06-13 22:22:11 · 12540 阅读 · 1 评论 -
iOS之常用第三方开源框架介绍
图像:1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存。可对图片进行缩放等操作。 下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外原创 2015-10-22 14:13:13 · 5209 阅读 · 0 评论 -
Android之第三方库封装
需求情景: 项目A需要引入第三方jar包,这个jar包由自己开发项目B并封装,其中项目B由一个Activity及相关类组成,既带有硬件厂商提供相关库(.jar及.so文件),又有如zxing、gson等第三方开源jar包。这里面涉及到3个问题:1、Activity中Res资源封装,使用R.id.xxx或R.layout.xxx会报错,提示找不到资源;2、第三方j原创 2016-01-06 00:41:44 · 2561 阅读 · 0 评论 -
Android EventBus开源项目
转自:http://yunfeng.sinaapp.com/?p=449场景描述当一个Android应用功能越来越多的时候,保证应用的各个部分之间高效的通信将变得越来越困难。在应用中的多个地方,控件经常需要根据某个状态来更新他们显示的内容。这种场景常见的解决方式就是定义一个接口,需要关注该事件的控件来实现这个接口。然后事件触发的地方来注册/取消注册这些对该事转载 2015-12-07 09:27:23 · 705 阅读 · 0 评论 -
iOS之ReactiveCocoa入门教程
初始工程:请点击这里ps:原文的初始工程已无法下载。原文转自:http://www.cnblogs.com/tmacforever/p/4878180.html作为一个iOS开发者,你写的每一行代码几乎都是在响应某个事件,例如按钮的点击,收到网络消息,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation)。但是这些事件都用不同的方式来原创 2017-07-17 11:21:02 · 993 阅读 · 0 评论 -
iOS应用架构谈 view层的组织和调用方案
本文转自 :https://casatwy.com/iosying-yong-jia-gou-tan-viewceng-de-zu-zhi-he-diao-yong-fang-an.htmliOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方案 iOS应用架构谈 本地持久化方案及动态部署 iOS应用架构谈 组件化方案转载 2017-07-31 11:31:59 · 639 阅读 · 0 评论