- 博客(15)
- 收藏
- 关注
原创 volatile关键字
之前,我们讲线程中断的时候,使用了volitate关键字完成了最简单的中断操作,那我们今天就来好好的探究下volitate关键字。争取做到知道什么时候用volitate关键字,他的作用是什么。一.volatile的作用在JDK1.2之前,Java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatil关键字的使用变...
2018-08-31 10:40:42 306
原创 Android 组件开发 以及跨module跳转
一 组装组件开发1.创建几个module和一个library所有module都添加library依赖图表结构如下图;2.组件开发架构图如下,看着图是不是觉得有道理然后开始分析;3.两个module需要两个身份,一个是dubug模式下单独运行;一个身份是作为library成为主项目的依赖来打包测试并且上架;4,ModuleA和ModuleB是相对独立的业务模块,可以分别进行开发,...
2018-08-22 11:09:35 2097
原创 Android组件化demo实现以及遇坑分享
热文导读 如何进阶成为Java和Android架构师?阿里电话面试面试题总结,附答案!程序员35岁之后的职业发展 前段时间看到最近一直很火的Android组件化然后就自己撸了一个demo,期间遇到了不少问题以及坑,在此记录一下,具体可以看项目源码。组件化无非就是将我们App项目下的几个模块在com.android.application与com.android.librar...
2018-08-20 14:20:51 574
原创 从零开始搭建Android组件化框架,附Demo和源码
热文导读 如何进阶成为Java和Android架构师?Android组件化demo实现以及遇坑分享不能All in的人别去创业公司 1、问题在已经开发过几个项目的童鞋,如果这时需要重新开发一个新项目,是否需要自己重新搭建框架呢,还是从老项目中拷贝粘贴? 我们是否可以封装一个底层的lib库,这个底层的公共基础库 包括了一些第三方库(如: okhttp, retrof...
2018-08-20 14:16:33 2012
原创 组件化框架简介
1 简介 1.1 什么是组件化?组件化简单概括就是把一个功能完整的App或模块拆分成多个子模块, 每个子模块可以独立编译和运行, 也可以任意组合成另一个新的App或模块, 每个模块即不相互依赖但又可以相互交互, 遇到某些特殊情况甚至可以升级或者降级 1.2 为什么要组件化?现在的项目随着需求的增加规模变得越来越大, 规模的增大带来了很多烦恼, 各种业务错中复杂的交织在一起,...
2018-08-20 11:38:54 725
原创 Java动态代理底层原理解析及Android 利用动态代理实现 ServiceHook
这篇博客主要介绍使用 InvocationHandler 这个接口来达到 hook 系统 service ,从而实现一些很有意思特殊功能的详细步骤。Java 的动态代理 首先我们要介绍的就是 Java 动态代理,Java 的动态代理涉及到两个类:InvocationHandler 接口和 Proxy 类,下面我们会着重介绍一下这两个类,并且结合实例来着重分析一下使用的正确姿势等。在这之前...
2018-08-15 11:19:24 610 1
原创 Android面向切面编程(AOP)——这篇文章就够了,通俗易懂
一、简述1、AOP的概念如果你用java做过后台开发,那么你一定知道AOP这个概念。如果不知道也无妨,套用百度百科的介绍,也能让你明白这玩意是干什么的:AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内...
2018-08-14 14:42:00 901
原创 android-apt 即将退出历史舞台
伴随着 Android Gradle 插件 2.2 版本的发布,近期 android-apt 作者在官网发表声明证实了后续将不会继续维护 android-apt,并推荐大家使用 Android 官方插件提供的相同能力。也就是说,大约三年前推出的 android-apt 即将告别开发者,退出历史舞台,Android Gradle 插件提供了名为 annotationProcessor 的功能来完全代...
2018-08-09 15:24:49 918
原创 安卓AOP三剑客:APT,AspectJ,Javassist
AOP:面向切面编程(Aspect-Oriented Programming)。如果说,OOP如果是把问题划分到单个模块的话,那么AOP就是把涉及到众多模块的某一类问题进行统一管理。Android AOP就是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,提高开发效率。本文仅...
2018-08-09 15:23:29 1660
原创 Java注解(Annotation)原理详解
序言注解在Java中到底是什么样的东西?具体是如何实现的? 本文将一层一层深入探究注解的实现原理。为了尽可能的将分析的过程呈现出来,所以文章包含了大量的截图和代码。(ps:如果图片看不清楚,请将网页放大来看,chrome可以通过ctrl+鼠标滚轮放大)前期准备知识方面开始分析前,提醒一下,下面的分析必须具备以下知识 1. 知道如何自定义注解 2. 理解Java动态代理机制 ...
2018-08-08 17:08:18 383 1
原创 Android6.0之App中的资源查找过程
给定一个相同的资源ID,在不同的设备配置之下,查找到的可能是不同的资源。这个资源查找过程对应用程序来说,是完全透明的。现在就详细分析资源管理框架是如何根据ID来查找资源的。资源按照是否有文件可以分为两类:。第一类资源是不对应有文件的,例如字符串资源,而第二类资源是对应有文件的,例如drawable资源。分别对这两种情况进行分析。资源ID格式前面的文章中已经介绍了资源ID格式,这里在...
2018-08-07 17:54:31 696
原创 Android6.0之App中的资源管理对象创建
Android与资源管理相关的类Resouces和AssetManager很有必要清楚他们的创建过程。与资源查找与加载操作相关的类资源查找与加载主要是靠Android资源管理框架来完成的,而Android资源管理框架实际是由Resources和AssetManager两个类来实现的。其中,Resources类可以根据ID来查找资源,而AssetManager类根据文件名来查找资源。...
2018-08-07 17:52:16 412
原创 Android6.0之App中的资源Rsources.arsc详解
Apk中的resources.arsc是aapt工具编译资源时生成的一个重要文件。App资源能根据配置的变化,索引到相应的资源都要依赖它。例如Android设备语言,屏幕设备尺寸不同时,app通过同样的ID但却能找到不同的资源进行显示。资源打包过程简述开发app时,需要代码和资源。最终生成的apk中代码转换为了dex文件,那么apk文件中的资源是否还是app开发时那些资源文件呢?或者说这些...
2018-08-07 17:50:55 1966
转载 【转】Android 插件化和热修复知识梳理
概述在Android开发中,插件化和热修复的话题越来越多的被大家提及,同时随着技术的迭代,各种框架的发展更新,插件化和热修复的框架似乎已经日趋成熟,许多开发者也把这两项技术运用到实际开发协作和正式的产品当中。因此,我们势必需要了解一下这两门技术。插件化和热修复首先需要明确的一点,插件化和热修复不是同一个概念,虽然站在技术实现的角度来说,他们都是从系统加载器的角度出发,无论是采用hook...
2018-08-01 17:48:39 221
转载 【转】Android插件化:从入门到放弃
转自:http://www.infoq.com/cn/articles/android-plug-ins-from-entry-to-give-up本文根据包建强在2016GMTC全球移动开发大会上的演讲整理而成。首先自我介绍一下,我叫包建强,是这个分场的主持人。我去年写了一本书,叫《App研发录》,相信有很多从事技术的朋友看过或买过。引言先简单介绍一下Android插件化。很早之...
2018-08-01 15:23:56 304
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人