10 linghu_java

尚未进行身份认证

暂无相关描述

等级
博文 417
排名 1k+

JavaPoet动态生成代码

JavaPoet-优雅地生成代码一项目简介二项目总览1大体结构图2关键类说明三相关使用1API使用2一个简单示例四源码浅析五使用场景1根据编译时注解生成代码11前言12一个简单示例2根据协议文件生成对应代码3更多待扩展六知识储备1注解处理器AnnotationProcessor11自定义注解处理器1

2017-08-22 11:36:20

Android动画详解

1背景不能只分析源码呀,分析的同时也要整理归纳基础知识,刚好有人微博私信让全面说说Android的动画,所以今天来一发android应用的各种Animation大集合。英文厉害的请直接移步参考AndroidDeveloper。Android系统提供了很多丰富的API去实现UI的2D与3D动画,最主要的划分可以分为如下几类:ViewAnimation: 视图

2017-07-21 11:41:15

Java的Runnable、Callable、Future、FutureTask。

Java中存在Runnable、Callable、Future、FutureTask这几个与线程相关的类或者接口,在Java中也是比较重要的几个概念,我们通过下面的简单示例来了解一下它们的作用于区别。Runnable其中Runnable应该是我们最熟悉的接口,它只有一个run()函数,用于将耗时操作写在其中,该函数没有返回值。然后使用某个线程去执行该runnable即可实现多线程,Th

2017-07-13 10:32:53

Android的ViewStub、include、merge使用与源码分析

在开发中UI布局是我们都会遇到的问题,随着UI越来越多,布局的重复性、复杂度也会随之增长。Android官方给了几个优化的方法,但是网络上的资料基本上都是对官方资料的翻译,这些资料都特别的简单,经常会出现问题而不知其所以然。这篇文章就是对这些问题的更详细的说明,也欢迎大家多留言交流。一、include首先用得最多的应该是include,按照官方的意思,include就是为了解决重复

2017-07-13 09:29:24

混淆中泛型问题

/ExceptionManager:ExceptionManager                 java.lang.ClassCastException:java.lang.Classcannotbecasttojava.lang.reflect.ParameterizedType               

2016-12-21 10:29:47

Android性能优化典范(一)

2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的AndroidApp。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个方面展开,Android的渲染机制,内存与GC,电量优化。下面是对这些问题和建议的总结梳理。

2016-05-05 15:45:33

Android应用中使用运行时注解

其实非常简单,直接上代码:本文主要是替代传统的findViewById()的功能,就是在我们Activity中不需要再使用findViewById()去给View赋值了,通过注解在运行阶段自动赋值。以及setOnClickListener()也是一样的原理。使用注解和反射技术。1.定义自己的annotation注解。   定义findViewbyId这个功能的注解pa

2016-04-22 11:36:38

控制反转与依赖注入(IOC和DI)

1.控制反转(InversionofControl)与依赖注入(DependencyInjection)控制反转即IoC(InversionofControl),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。IoC是一个很大的概念,可以用不同的方式来实现。

2016-04-21 20:15:06

反射、注解与依赖注入总结

现在在我们构建自己或公司的项目中,或多或少都会依赖几个流行比较屌的第三方库,比如:ButterKnife、Retrofit、Dagger2等,如果你没用过,那你需要找时间补一下啦;有时在使用后我们会好奇他们到底是怎么做到这种简洁、高效、松耦合等诸多优点的,当然这里我不探讨它们具体怎么实现的,而关心的是它们都用到同样的技术反射和注解,并实现的依赖注入。如果你好奇这些库具体是怎么实现的,或

2016-04-21 19:34:23

Android 6.0 M的新特性

android6.0(API23)有一些新特性,下面就简单介绍下:1. Runtimepermission(运行时权限)     使用checkSelftPermission()判断是否已经权限授权,如果需要请求权限可以使用requestPermissions().     主要是保护用户隐私和系统完整性,Android以一种有限访问沙箱模型运行应用,如果应用需要使

2016-04-18 21:09:51

Android 6.0权限管理

Android6.0在我们原有的AndroidManifest.xml声明权限的基础上,为了用户隐私保护,又新增了运行时权限动态检测,以下权限都需要在运行时判断:身体传感器、日历、摄像头、通讯录、地理位置、麦克风、电话、短信、存储空间新的权限机制更好的保护了用户的隐私,Google将权限分为两类,一类是NormalPermissions,这类权限一般不涉及用户隐私,是不需要用户进行授权的,

2016-04-18 14:24:22

java虚拟机Class类文件的结构

平台无关性   Java是与平台无关的语言,这得益于Java源代码编译后生成的存储字节码的文件,即Class文件,以及Java虚拟机的实现。不仅使用Java编译器可以把Java代码编译成存储字节码的Class文件,使用JRuby等其他语言的编译器也可以把程序代码编译成Class文件,虚拟机并不关心Class的来源是什么语言,只要它符合一定的结构,就可以在Java中运行。Java语言中的各

2016-04-17 10:23:24

JVM虚拟机内存模型

java虚拟机运行时内存主要包括:程序计数器、虚拟机栈、本地方法栈、java堆、方法区(包含运行时方法区)以及直接内存几个部分。下面分别介绍几个部分:1. 程序计数器(ProgramCounterRegister),很小的一块内存空间,当前线程执行的字节码的行号指示器,执行命令的指令指针。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支

2016-04-14 15:04:29

android 应用动态加载机制2--资源加载机制和Activity生命周期管理

前言为了更好地阅读本文,你需要先阅读Androidapk动态加载机制的研究这篇文章,在此文中,博主分析了Android中apk的动态加载机制,并在文章的最后指出需要解决的两个复杂问题:资源的访问和activity生命周期的管理,而本文将会分析这两个复杂问题的解决方法。需要说明的一点是,我们不可能调起任何一个未安装的apk,这在技术上是无法实现的,我们调起的apk必须受某种规范的约束,只有

2016-04-14 10:43:07

android 应用动态加载机制1

背景问题是这样的:我们知道,apk必须安装才能运行,如果不安装要是也能运行该多好啊,事实上,这不是完全不可能的,尽管它比较难实现。在理论层面上,我们可以通过一个宿主程序来运行一些未安装的apk,当然,实践层面上也能实现,不过这对未安装的apk有要求。我们的想法是这样的,首先要明白apk未安装是不能被直接调起来的,但是我们可以采用一个程序(称之为宿主程序)去动态加载apk文件并将其放在自己的

2016-04-14 10:42:04

AsynTask源码总结

AsyncTask1.第一个为doInBackground接受的参数,第二个为显示进度的参数,第三个为doInBackground返回和onPostExecute传入的参数。2.AsyncTask的execute()在哪里调用就在哪里所在的线程中执行onPreExecute();即如果不在UI线程中执行,则loading菊花要自己处理使其在UI线程中执行;3.

2016-04-12 19:03:19

Android性能优化

1背景其实有点不想写这篇文章的,但是又想写,有些矛盾。不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结、我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用,啥啥啥该咋用等,却很少有较为系统的进行真正性能案例分析的,大多数都是嘴上喊喊或者死记住规则而已(当然了,这话我自己听着都有些刺耳,实在不好意思,其实关于性能优化的优质博文网上也

2016-04-12 16:06:21

Google工程师解析Android系统架构

【多图】Google工程师解析Android系统架构导读:SansSerif是Google的一位工程师,近日发布了一篇博文非常清楚的描述了Android系统架构,中国移动通信研究院院长黄晓庆在新浪微博上推荐了该文,并认为文中对Android的介绍很好,如下是CSDN对文章的简单编译: 1.Andriod是什么?首先,就像Android开源和兼容性技术负责人DanM

2016-04-01 14:58:59

Java中的反射基础知识

1.了解Java中的反射1.1什么是Java的反射Java反射是可以让我们在运行时获取类的函数、属性、父类、接口等Class内部信息的机制。通过反射还可以让我们在运行期实例化对象,调用方法,通过调用get/set方法获取变量的值,即使方法或属性是私有的的也可以通过反射的形式调用,这种“看透class”的能力被称为内省,这种能力在框架开发中尤为重要。有些情况

2016-03-28 22:00:33

Android常用的颜色代码值

红色和粉红色,以及它们的16进制代码。#990033#CC6699#FF6699#FF3366#993366#CC0066#CC0033#FF0066#FF0033..#CC3399..#FF3399#FF9999

2016-03-17 21:23:32
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!