Gradle学习笔记-Groovy基础 Groovy是基于JVM的一种动态语言,语法与Java相近,上手较快。Groovy完全兼容Java。又增加了很多动态类型和灵活的特性,是一门比较灵活的动态脚本语言。 变量Groovy中通过def定义变量,无需指定变量类型,自动判断。 数据类型1234567891011121314151617task printDef << {//字符串def str1 = "str"de 2019-04-23 Gradle
Gradle学习笔记-基础 Gradle是一种自动化构建语言,是一种DSL(Domain Specific Language 特点领域语言),目前是Android的默认构件构建工具,是一个编程框架。 作用 将Java/Kotlin(逻辑代码)、XML(界面代码)、NDK C/C++(JNI)、资源文件,RenderScript(并行运算)这些文件通过编译过程打包成一个Apk。 解决自己的问题 帮助其他人优化开发流程 2019-04-22 Gradle
AOP学习笔记-APT APT全称Annotation Processing Tool-注解处理器,用于在代码编译期间解析注解并生成新的Java文件,减少手动的代码输入。 主要通过生成注解类所在类的代理类,在运行期直接调用代理类中的方法实现功能。 注解处理方案-反射注解处理方案-APT 2019-04-17 AOP
组件间通信——LiveDataBus LiveData是一个可以被观察的数据持有类,可以感知并遵循Activity、Fragment,Service等组件的生命周期。由于这种特性可以使他做到在特定生命周期执行特定的操作。 LiveData优点: UI和实时数据保持一致:可以在数据发生改变时立即响应到 避免内存泄漏:当绑定的组件被销毁时,会自动清理数据以及移除引用,避免泄漏 根据上述优点,就可以利用LiveData去实现一个组件 2019-03-21 Android
Java中的锁事 Java中提供了种类丰富的锁,定义这些锁可以在适当的场景中发挥更好的作用。 乐观锁&悲观锁乐观锁 每次去拿取数据的时候认为不会有人进行修改,所以不会去添加锁。只是会在更新数据时去判断是否有其他线程对这个数据进行了修改。通过判断版本号检测是否发生了更新,未发生变化直接写入新数据;发生了变化,就需要重复执行读版本号-比较有无发生变化-写入新数据操作。在Java中一般通过CAS算法实现。例如A 2019-03-15 Hide
WebView相关知识 WebView是一个基于WebKit引擎,展现Web页面的控件。 主要提供以下功能: 显示和渲染Web页面 直接使用html文件做布局 可以和js进行交互 WebView基本使用添加权限AndroidManifest.xml1<uses-permission android:name="android.permission.INTERNET"/> 生成一个WebView组件直 2019-03-12 Android
JNI基础知识 JNI基础概念JNI本意为Java Native Interface,为了方便Java调用C、C++等本地代码所封装的一层接口。当出现一些无法用Java处理的任务时,就可以借用JNI技术去完成。一般来说有以下几种情况需要用到JNI技术: 需要调用Java语言不支持的依赖于操作系统平台特性的一些功能。例如:调用当前Android系统的底层功能,而Java无法实现,就需要用到JNI 为了提升应用部 2019-03-02 Android
final关键字 Final特性final代表了不可变,被final修饰的属性也是不可变状态,一旦被final修饰,将无法再改变这个引用。 另外final关键字还能保证线程间的同步,下面会基于JVM角度对这个特性进行分析。 Final使用方法修饰类 被final修饰的类不可以被继承,例如String、Integer,类中的方法也是默认被final修饰的。 修饰方法修饰变量Final在JVM中的体现内容引用Fina 2019-02-26 Java
static关键字分析 一种表示静态属性的修饰符。用于为特定区域分配单一存储空间,不考虑要创建多少对象或者说根本就不创建任何对象,再就是想在没有创建对象的情况下也去调用方法。 static关键字作用 用来修饰类的成员 修饰成员变量——静态变量 修饰成员方法——静态方法 当类被加载时,会优先被加载 用来修饰代码块——静态代码块,先于类的构造方法之前执行且只会执行一次。用来对静态成员做初始化 静态修饰的成员被所有 2019-02-25 Java
Java - 注解 基础概念元数据 元数据是关于数据的数据,元数据是添加到程序元素入方法、字段、类和包上的额外信息。对数据进行说明描述。 元数据可用于以下场景: 编写文档:根据程序元素的注释创建文档 代码分析:通过标识的元数据对代码进行分析(例如声明方法重载) 编译检查:让编译器实现基本的编译检查,例如@notNull——不为空 Java平台的元数据体现 就在于注解(Annotation)。 注解概念 与Ja 2019-02-19 Java
Hook技术简析 说到Hook技术需要先提到逆向工程,主要目的是在不能轻易获得必要生产信息的情况下,直接从成品分析,推导出产品的设计原理。 逆向分析又分为 静态分析:不执行程序的情况下对程序行为进行分析的技术 动态分析:在程序运行时对程序进行调试的技术。Hook属于动态分析。 代理模式设计模式--静态代理模式和动态代理模式原理及实现 Hook技术概述 对象A直接调用B,对象B结果直接回调给A。 Hook可以是 2019-02-06 Java