- 博客(64)
- 资源 (24)
- 问答 (2)
- 收藏
- 关注
原创 栈的顺序存储结构以及实现
栈是限定仅仅在表尾进行插入和删除操作的线性表。 允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何元素的栈称为空栈。 栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。
2016-11-05 09:54:28
759
原创 从内存角度分析,程序中为什么要有class(类)和object(对象)
为什么设计class和object在Java中类和对象都是以dev指令的形式存储在内存中的,class是类,相当于模板,通过它可以制造很多对象object;但是为什么要这样设计呢?下面通过两个方面来理解:
2016-10-13 00:03:20
3293
4
原创 开发中颜色透明度换算(也即argb透明度换算)
拿一个颜色值举例 #FFccdd99, FF :透明度(alpha) | cc :红色值(red)-------- | -----dd :绿色值(green) | 99 :蓝色值(blue)上面对应就是颜色的argb,其他的还好,这个FF透明度alpha要说一下,曾经开发中困惑- **<font color=red>argb中的透明度alpha,表示的是不透明度</font>**- 透明度分为256阶(0~255),计算机上用16进制表示为(00-ff),透明就是0阶,不透明就是
2016-10-12 20:28:29
1555
原创 Android虚拟机JVM运行时数据区
1.cpu 、内存条、硬盘、显卡、主板、显示器之间的关系举例说明最深刻:比如电脑硬盘的d盘中有一段电影视频,鼠标单击视频的时候,操作系统就会把硬盘中的视频数据读入内存条,然后cpu再去处理内存条中的电影数据,处理完之后把其中的某一些数据变成了图像,文字,声音等,图像和文字是通过显卡在显示器显示出来,声音通过声卡把声音显示出来,其中硬盘,显卡,声卡,都在主板的插槽里面,cpu也在主板上面,它们都是通过
2016-08-22 22:05:34
599
转载 ViewPager中Fragment的懒加载和可见状态监听
什么是对象的序列化和反序列化? 对象序列化,就是将Object对象转换成byte字节序列;这里使用ObjectOutputStream — writeObject(); 对象的反序列化,就是将byte字节序列转换成Object对象;这里使用ObjectInputStream—readObject(); Serializable接口 是java所提供的一个序列化方式,为对象提供标准的序列化和
2016-08-16 23:31:53
3766
原创 AsynTask异步任务源代码分析
5.0以后AsyncTask内部开始自己定义了一个线程池SERIAL_EXECUTOR,内部阻塞队列换成了ArrayDeque,同时execute方法变成了synchorzied的了,这样即使在不同的线程中,执行的时候就是在这个队列里面同步取任务让另一个线程池执行,方法变成同步有序的了,而且队列还是无容量限制的,只是执行任务是按照顺序同步执行,效率赶不上3.0之前的异步执行。但是解决了之前的BUG。在mWorker中我们重写了它的call方法,当这个任务被执行的时候call()方法会被调用,在哪里?
2016-08-04 02:12:53
13378
原创 Android绘制文本之获取宽高笔记
在自定义View的需要绘制文字时候,经常要考虑到文本的中心位置,这就需要计算并获取整个文本的宽度和高度,为了以后的使用方便,故这里记录一下。我们先看图了解一下字体基准线:上面所有的属性都被封装在FontMetrics类中,通过它可以获取并计算文本的宽高,大体翻译一下,可能不准确。 public static class FontMetrics { /** *
2016-07-05 00:03:01
13446
原创 用dx.bat工具查看dex指令,并分析指令
de.bat工具位于sdk的build-tools工具下面,要使用它,首先要配置一下环境变量,在path中去添加。现在编译一个类Person类如下:
2016-06-25 02:11:59
3724
原创 java和js交互
微信,微博,微商,QQ空间,大量的软件使用内嵌了H5,这个时候就需要了解Android如何跟H5交互的了;有些外包公司,为了节约成本,采用Android内嵌H5模式开发,便于在iOS上直接复用页面,最终解决成本。
2016-06-22 23:23:31
1916
原创 字符串处理类(android.text.TextUtils)中的常用方法
String a = &quot;Android&quot;; String b = &quot; Studio&quot;; String c = &quot;012345&quot;; String d = &quot; \n\t \b&quot;; String e = &quot;11-233-
2016-06-04 17:28:12
12187
3
原创 计算文件大小超方便的工具类(android.text.format.Formatter)
根据文件大小自动转为以B,KB, MB, GB为单位的工具类.以后不用自己手动计算。 贴一下源代码,看了之后,让你感觉倍爽: public static String formatFileSize(Context context, long number) { return formatFileSize(context, number, fal
2016-06-04 13:16:00
11562
原创 Android基础View事件知识
1.View的位置参数 View的四个位置主要有思安个顶点决定,分别对应四个属性,top、left、right、bottom. top:表示View的原始左上角的纵坐标, left:表示View的原始左上角的横坐标, bottom:表示View的原始右下角的纵坐标, right:表示View的原始右下角的横坐标, 这些坐标都是相对于View的父容器来说的,都是相对坐标 从Andro
2016-05-31 14:01:23
745
原创 ContentProvider基本使用初探
ContentProvider是Android中提供的专门用于进程间通信。和Messenger一样,它底层也是Binder,系统已经为我们做了封装。
2016-05-15 23:17:31
1109
原创 安卓View绘制流程
通过ViewRootImpl类的performTraversals()方法,系统会依次调用View的measure()、layout()和draw()方法,完成View的绘制流程。然后,通过遍历View树,调用每个View的draw()方法来执行实际的绘制操作。在performMeasure()方法中,通过遍历View树,调用每个View的measure()方法来进行测量操作。在performLayout()方法中,通过遍历View树,调用每个View的layout()方法来进行布局操作。
2016-05-12 23:35:40
985
1
原创 Android代码中编码和加解密方式
加密算法有很多一般分为对称加密(DES,AES)、非对称加密(RSA)、单向加密(MD5); DES加密:public class DES { // 初始化向量,随意填充 private static byte[] iv = { 'a', 'b', 'c', 'd', 'e', 1, 2, '*' }; public static void main(String[] arg
2016-05-03 23:48:10
9134
原创 Git 当前项目设置 用户名、邮箱
1.git 配置用户名和身份 git config –global user.name “jordan” git config –global user.email “xxxxxxxxxx@qq.com”2.查看配置是否成功 git config –global user.name git config –global user.email3.进入到某个项目的目录下,比如在 d:/
2016-04-30 10:41:34
1968
原创 Activity的生命周期和启动模式
1.典型情况下生命周期全面分析 上图是Activity的生命周期示意图: onCreate和onDestory是配对的,分别标识Activiy的创建和销毁并且只可能调用一次。 onCreate表示Activity正在被创建这里可以做一些初始化工作,比如调用setContentView去加载布局资源.初始化Activity所需要的数据等; onDes
2016-04-16 16:25:48
1429
原创 Lambda表达式笔记
这种匿名函数,在 JDK 8 之前是通过 Java 的匿名内部类来实现,从 Java 8 开始则引入了 Lambda 表达式——一种紧凑的、传递行为的方式。reduce的作用是把stream中的元素给组合起来,我们可以传入一个初始值,它会按照我们的计算方式依次拿流中的元素和在初始化值的基础上进行计算,计算结果再和后面的元素计算。map只能把一个对象转换成另一个对象来作为流中的元素,而flatMap可以把一个对象转换成多个对象作为流中的元素。,在运算符的左边是输入参数,右边则是函数主体。
2016-04-13 15:22:21
1750
1
原创 正则表达式笔记
正则表达式其实只需要会用一些常用的的字符匹配规则,就能够写出大多数的字符匹配规则,下面就直接介绍一下常用正则表达式的匹配:.--匹配任意一个字符X*--表示字符X出现了0次或者多次X+--表示字符X出现了1次或者多次X?--表示字符X出现0次或者1次 // .表示任意一个字符(a字符是否匹配.) System.out.println("a".matches("
2016-04-06 16:23:15
2859
原创 ListView中含有EditText时候--要命的焦点问题迎刃而解
最近做项目的时候遇到了一个问题,就是在ListView的item上面含有一个EditText,要求是这样: 1当点击item的时候,item可以点击; 2当点击EditText的时候EditText也可以正常弹出软件盘;当时真是把我给搞疯了,item可以点击的时候,EditText不能正常使用了,EditText好了的时候,item又不可点击了,当时那个火,心中一万句草泥马都出来了。言归正传,
2016-03-30 15:59:09
12057
17
原创 开发中经常用到的数字处理类整理(Java)
1.DecimalForamt类(数字格式化),什么也不说了看看代码就懂了 /** * 数字的格式化 */ public static void simgleFormat(String pattern, double value) { DecimalFormat format = new DecimalFormat(
2016-02-19 00:01:30
2797
原创 Java反射基础入门知识
java反射说的是一套反射机制,通过这套机制我们可以访问已经装载到JVM(java虚拟机的简称)里面的java某个对象,还可以进行检测以及修改这个对象本身的信息。可以说反射机制的功能是非常强大的,在java.lang.reflect包里的类支持了这些功能。 说到反射我们绕不开的一个类Class,它到底是什么?其实一句话,所有运行的java虚拟机中的类都是Class类的对象。类也是对象,类是java
2016-02-04 23:50:20
2712
原创 二进制位运算笔记
在java中基本数据类型所占的字节数,一个字节是8位;原码+反码+补码所有计算机中这些码可以理解为一种规定标准,就是说计算机里以何种标准来存储二进制;在计算机中,参与运算的是二进制数的补码形式。另外在计算机中规定:正数原码 == 反码 == 补码;负数和0反码 == 其原码除符号位之外的各位取反;补码 == 反码 + 1 (如果+1之后有进位的,要一直往前进位,包括符号位);原码就是一个数的二进制形式比如-8的二进制数表示:其中,最高位为符号位:正数为0,负数为1,剩下的位表示数值。反码就
2016-01-30 13:48:59
2477
原创 Handler源码学习
在Android应用程序中,存在一个主线程我们通常叫做UI线程,可以进行界面的更新等,进行系统的消息发送。接触Android久了,就会知道,Activity的生命周期就是通过系统内部的Handler发送消息来进行回调,其中消息传递过程是Handler的消息机制;为什么要使用Handler的消息机制? —它的设计避免了多线程的并发执行操作,我们知道Android规定:UI只是支持单线程模型。
2016-01-30 13:32:23
19263
1
android打包AP上传Google有问题
2015-09-14
在AS中使用Git,点击View Commits 看不到别人提交的具体内容
2021-01-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅