
android 架构
文章平均质量分 92
带你装逼带你飞的程序猿
android开发
展开
-
Android 中使用Aspectj进行切面编程
1 说明在Android中有时需要用到AOP编程的场景,aspectj是一个不错的选择。因此特此记录下2 Android引入Aspectj项目的build.gradle中引入如下配置 //for AspectJ classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4'需要切入...原创 2019-11-16 19:23:51 · 840 阅读 · 0 评论 -
Android 内存优化一 内存抖动的定位及优化
1 Android内存抖动内存抖动是指内存忽高忽低,有短时间内快速的上升和下落的趋势,内存呈锯齿状。此时会频繁的GC,造成卡顿,甚至有OOM的可能内存抖动越剧烈,说明单次分配的内存更大。2 内存抖动的定位对于内存抖动的定位可直接使用Memory Profiler,原因是Memory Profiler可直接反应APP的内存占用,方便进行跟踪发生内存抖动时,我们选择内存变化锯齿状的区域,然...原创 2019-05-03 19:10:04 · 2875 阅读 · 0 评论 -
Android APP启动优化二 使用Systrace和TraceView分析启动耗时
上一篇App启动已经初步的分析了有哪些启动类型以及怎么去简单的测量App启动的耗时,这一篇主要使用两个工具来粗略的分析启动的耗时到底在哪些地方。下面开始介绍1 使用systrace抓取trace.html文件在使用Systrace之前,建议大家好好参考官方的这边介绍systrace官方介绍这里面详细的介绍了systrace抓取trace.html的命令以及选项的意思,我采用的命令如下call...原创 2019-04-21 15:47:16 · 7388 阅读 · 0 评论 -
Android架构组件四 Android Architecture Components LiveData组件解析
1 前言简单的说,LiveData是一个数据持有类,持有的数据可被观察者观察。它具有以下特点数据可以被观察者订阅;能够感知组件(Fragment、Activity、Service)的生命周期;只有在组件出于激活状态(STARTED、RESUMED)才会通知观察者有数据更新;当然这里的组件都是指实现了LifecycleOwner接口的组件。 官方推荐我们使用LiveData时结...原创 2018-02-25 17:29:44 · 667 阅读 · 0 评论 -
Android架构组件三 Android Architecture Components ViewModel组件解析
1 前言ViewModel是android架构组件中非常重要的一个组件,它是Android架构分层的核心,有关它的用法和资料可以参考 Android架构组件一 Android Architecture Components开发入门 也可以参考官方给出的示例https://developer.android.google.cn/topic/libraries/architecture/vie...原创 2018-02-10 18:07:12 · 1652 阅读 · 0 评论 -
Android架构组件二 Android Architecture Components Lifecycles 组件解析
1 前言前一篇博文已经初步的介绍了Android Architecture Components的基本概念以及基本使用,相信大家已经对这个组件有了一定的了解,这一篇博文主要来解析Android Architecture Components 的Lifecycles生命周期组件,以便于大家更好的深入理解这个组件。从而更好的进行App架构设计。2 Lifecycles 的作用生命周期管...原创 2018-02-04 15:33:59 · 1071 阅读 · 1 评论 -
Android架构组件一 Android Architecture Components开发入门
1 前言大家都知道在Android开发中,一个好的Android架构能为项目带来极大的遍历,对于版本发布,后期维护等有着极为重要的地位,可以说架构是APP可持续发展的灵魂。在Android开发中也涌现出了很多优秀的架构,从早期的MVC到现在的MVP,MVVM等,Android架构一直在不停的演进。有鉴于此,google也终于在2017年的IO开发大会上推出了Android Architectu原创 2018-01-14 11:45:14 · 4928 阅读 · 1 评论 -
Android View 高级框架二 Builder模式打造通用对话框
1 前言在我们的日常开发中,对话框是一个常见的组件,例如下面的对话框,分别是三种不同类型的对话框 在Android开发中,对话框也和我们的TitleBar一样,有各种样式,而且它比TitleBar更加的复杂,因为对话框显示的位置还有底部显示,中心显示,顶部显示,以及动画等,因此。对于对话框,我们也可以封装以下。这里我们还是采用Builder模式来封装。封装思路:将UI实现及事件和我们对话框基本原创 2017-11-04 15:10:18 · 740 阅读 · 0 评论 -
Android 360开源全面插件化框架RePlugin 实战
1 RePlugin 介绍RePlugin是一套完整的、稳定的、适合全面使用的,占坑类插件化方案,由360手机卫士的RePlugin Team研发,也是业内首个提出”全面插件化“(全面特性、全面兼容、全面使用)的方案。其主要优势有:极其灵活:主程序无需升级(无需在Manifest中预埋组件),即可支持新增的四大组件,甚至全新的插件 **非常稳定:**Hook点仅有一处(ClassLoader),无原创 2017-10-14 20:15:17 · 17854 阅读 · 2 评论 -
Android通用框架封装三 CrashHandler框架封装
1 前言在日常使用中我们总会记录一些异常信息,例如崩溃信息等,这些功能可以借助第三方工具实现,例如友盟,oneAPM 等,但是有时这些工具满足不了我们的需求,或者说不是那么友好,这时,我们就需要自己做一个异常信息收集工具了。2 Crash框架的功能在日常使用中我们总会记录一些异常信息,例如崩溃信息等,这里我们就可以实现以下的崩溃框架。功能: 1记录崩溃时的异常信息,包括崩溃时的异常栈信息 2 将原创 2017-10-28 11:42:45 · 899 阅读 · 0 评论 -
Android View 高级框架一 Builder模式打造通用TitleBar
1 简介我们在开发中往往都有一个TitleBar在APP最上面。例如下图 这个TitleBar如果每次都写在布局中,则每个Activity都要在布局中展现。会增加布局的复杂度,另外也不便于维护。另外,对于不同的界面,有时候这个TitleBar又会有所差别。因此怎么定制化一个可以复用又方便维护的TitleBar呢?当然,我们也可以单独写一个布局文件,然后每个Activity的界面include进原创 2017-10-09 20:46:29 · 974 阅读 · 0 评论 -
Android通用框架封装一 数据中心DataCenter框架封装
1 前言在Android开发中往往会保存和使用各种数据,这些数据按照存储来分,大概会分为3类,第一是保存在内存中的数据,第二是保存在SharedPreferences中数据,第三是保存在SQL数据库中。为了统一管理及访问,使上层应用忽略掉这些差异,及为了减少对SQL及SharedPreferences的操作,往往会对这些进行封装,之前在网络上看到的大多都是对SharedPreferences进行封装原创 2017-09-03 16:58:32 · 2133 阅读 · 0 评论 -
Android通用框架封装二 Log日志框架封装
1 前言我们在实际开发中日志这个功能时必不可少的,有些是用原生的android.util.Log,或者使用网上开源的第三方框架例如Logger等,不可否认,第三方框架相对于原生的功能增强了不少。但是这里,我想在原生的基础上封装一个非常简单并且实用的日志框架。请看下面的介绍2 Log日志框架的主要功能要封装这个日志框架,首先要知道我们需要什么,要把这个框架做成什么样子。经过思考,我打算把日志框架做成如原创 2017-09-08 23:50:23 · 3460 阅读 · 0 评论 -
Android MVP 架构一 View与Presenter
1 前言很早就在开始关注Android的架构方面的东西了,在android开发中,我们不外乎这三种架构:MVC,MVP,MVVM。关于这三者的简单介绍如下:1 MVCMVC的经典架构如下: MVC简单的来说就是通过Controller去操作Model层,同时去更新View层显示。另外View层也会与Model层有交互。造成这三者之间的耦合比较大。 比如我们在平常的Android开发中,Vie原创 2017-04-01 15:26:12 · 17817 阅读 · 2 评论 -
Android MVP 架构二 Presenter与Model
1 前言前一篇我们主要介绍了MVP中View与Presenter的概念及交互,View层持有Presenter的实例,将一切逻辑操作都转发给Presenter层来操作,Presenter层持有View层的实例,并且将有关界面的部分的操作转发给View层实例操作,而设计到数据的部分则和Model层一起来操作。根据google官方的MVP项目例子todoapp,我们还分别介绍了Activity的作用,V原创 2017-04-15 20:18:32 · 5192 阅读 · 3 评论