自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 Java-注解

Annotation什么是注解所有写过Java的都应该见过见过@Override、@Deprecated这种“神奇的”语法吧,比如@Overridepublic String toString() {...}再比如说Android里面的ButterKnife也是通过这种方式来“自动”的完成View的查找,再比如说Retrofit也用到了这种语法,当我们用一些优雅的第三方库的时候,往往会用到注

2017-10-12 23:41:52 214

原创 Launch

APK安装实质dex关于dex先说几点,我们知道java生成的是class文件,jvm也是基于栈的虚拟机,而Dalvik和ART都是基于寄存器的虚拟机,所以在build的时候,不仅仅是简单合并和去除重复,还要转变指令和数据结构apkapk实质上就是一个zip文件,只是改了后缀名而已,apk里面放着dex文件、native代码文件(.so)、资源文件、Manifest.xmlapk的安装过程

2017-10-12 23:39:59 439

原创 proguard

混淆什么是混淆我们都知道Java代码最终被执行是要被Javac编译成JVM上的可执行码(class)才可以被JVM运行,但是字节码的复杂度不高,网上一些可以反编译字节码的工具,比如jd(java decompiler),可以把jar包反编译成java源码,如果想要反编译apk,只需要用dex2-jar就可以把apk转换成jar包,然后就可以使用jd来反编译了,这样我们的代码逻辑不都一览无遗了吗,所

2017-10-12 23:38:49 246

原创 TaskAffinity

Task Affinity我们都比较熟悉Activity的launch mode,但是很多人并不知道TaskAffinity这个属性,这个属性可以在AndroidManifest里面的activity配置:android:taskAffinityTask一个Task就好像它的名字一样,是一个任务,Android上把一个任务抽象成一系列的UI(Activity)去完成,比如默认情况下一个App就

2017-10-12 23:37:23 485

原创 Route

Android 中的 RouteWhy?Route(路由)众所周知是网络中的名次,具体来说是指IP层协议的内容,路由协议主要有OSPF、RIPS、BGP,那么Android里的Route指的是什么呢?Android里的Route也如同IP层的Route一样,作用类似寻址,但是寻的“址”并不是IP地址,而是页面,试想以下场景: 实际开发中某个点击事件要求跳转某个页面,但是在开发过程中并不能确定是

2017-10-12 23:36:19 299

原创 DesignPattern

MVC && MVP && MVVMMVCModel && View && ControllerMVC也有很多版本,都是根据实际情况来确定的,MVC稍微一变动便成了MVP,MVC是三者里面约束最宽松的,M、V、C三者之前可根据自己的实际需求定义耦合关系最大的特点在于Model可以直接更新View,即对Model和View之间的联系不做要求,可以有联系,也可以无联系View和Controlle

2017-10-12 23:34:38 170

原创 ClassLoader

ClassLoaderIntroductionJava是半编译半解释语言,任何一个.java文件(其实就是一个类文件)都要被jdk的编译器编译成class文件(Android上会把所有的class文件进行一个合并,并对class文件做一些优化,比如去除运行时常亮池里重复的部分),class文件就是jvm的可执行文件,任何一个class文件都必须要被JVM加载(就是一次IO,把class文件读入内存

2017-10-12 23:33:22 153

原创 由Java引起的指令重排序思考

背景问题出现在6360灰度期间从Crash平台上看到了一个NullPointerException,虽然量不大,但是很怪异,大致长这个样子这是个什么空指针?居然说我LinkedList.iterator().hasNext()方法有问题?可是我就是正常的调用hasNext()啊,怎么就抛出来这种异常了呢?问题初分析调用LinkedList.iterator().h

2017-10-12 23:25:01 3499 1

原创 关于锁的理解

本文打算写一些和锁有关的东西,谈一谈我对锁的原理和实现的理解,主要包含以下方面信号量互斥量条件变量同步与互斥其实同步与互斥都是计算机科学里面概念性的东西,它们和什么编程语言、操作系统其实都没什么关系。很多人会混淆这两个概念,但是其实这两个概念并不一样(其实也不深奥,我们在写代码的时候肯定都用到过这两种概念性的东西)互斥这个概念大家应该都清楚,就是说一个资源在任意一个时刻只能被一个进程/线程持

2017-10-12 23:14:53 1681 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除