- 博客(24)
- 资源 (16)
- 收藏
- 关注
原创 Service过往总结--后台服务,前台服务,扩展Binder,Messenger
Service过往总结关于Service,相信都是用的熟的不能再熟了,也确实没什么好说的,那就总结一下Service的使用过往吧。去google看了一下,介绍的非常好了,那就直接拿过来。Service 是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。 此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程
2016-11-30 16:57:25 1073 1
原创 IntentService源码分析
Service相信都不陌生,一说android四大组件,挂拉呱啦就出来了,IntentService就是Service的一个子类,本质是一个Service,只不过是内部封装了一些好用的功能,方面我们使用。google介绍IntentService可以用来处理异步请求,当工作线程结束之后,会自动停止服务。注意所有的请求都是在一个工作线程处理的,一次只能处理一个请求,所以如果前面的请求比较耗时,后面的请
2016-11-30 01:11:27 545
原创 AsyncTask源码分析(一)
AsyncTask从一开始用它来执行简单的异步任务,到后来抛弃,应该说用的熟的不能再熟了,但是对AsyncTask的内涵理解却不是那么清晰明了,所以还是从源码的角度重新看一下,AsyncTask到底干了些什么吧。还是从最简单的成员变量看起吧://cpu数量 private static final int CPU_COUNT = Runtime.getRuntime().availableProc
2016-11-29 00:35:17 586
原创 ArrayMap源码分析
唉,看源码看源码,泥煤,看的头疼。可是你要是不看,如何出去装逼,如何写出性能比较高的代码,被人一问三不知,那叫一个大写的尴尬,好了废话不多说,慢慢看吧。源码大致看了一下,还是比较多的,分析之前,还是先看一下他的设计思路,这样下面理解起来也容易。ArrayMap设计思想:SimpleArrayMap采用了两个数组来进行hash值与key、value值得保存,另外,数组大小超过8时,并需要进行重新分配空
2016-11-28 17:10:41 1745
转载 (转)Android的消息机制之ThreadLocal的工作原理
(转)Android的消息机制之ThreadLocal的工作原理标签(空格分隔): 未分类转自Android的消息机制之ThreadLocal的工作原理ThreadLocal是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,数据存储以后,只有在指定线程中可以获取到存储的数据,对于其它线程来说无法获取到数据。在日常开发中用到ThreadLocal的地方较少,但是在某些特殊的场景下,通过T
2016-11-26 11:36:12 426
原创 SparseArray源码分析
SparseArray源码分析标签(空格分隔): 未分类当里个当,SparseArray 大家都说他的效率比HashMap高,但是具体为什么高,我只是之道他省略了装箱过程,但是里面到底是怎么算的,还是一脸的懵逼,如果别人问到,同时可用HashMap,SparseArray的情况下,为毛SparseArray效率高,如果不看源码,尼玛绝对又是大写的懵逼,为了减少懵逼状态,还是硬着头皮看看源码吧。那就从
2016-11-25 23:46:38 966
原创 Android Handler分析
Android Handler分析标签(空格分隔): handler最近面试总是被问到handler相关的东西,那就静下心来,仔细分析一下handler的源码,看一下内部到底是个什么鬼,也好出去装逼不是。首先看一下handler的构造方法,都有些什么鬼,我把源码的注释去掉了,想看的自己去源码里看 private static final boolean FIND_POTENTIAL_LEAK
2016-11-25 18:05:47 617
原创 Android常见内存泄漏
Android常见内存泄漏标签(空格分隔): 性能优化性能优化是一个大的范畴,如果有人问你在Android中如何做性能优化的,也许都不知道从哪开始说起。首先要明白的是,为什么我们的App需要优化,最显而易见的时刻:用户say,什么狗屎,刷这么久都没反应,取关卸载算了。这跟什么有关,我们先苍白的反驳下,尼玛用户设备老旧网又烂,关我屁事,根本不用优化。可是,老板拍板了,施压给CTO,然后CTO又来找你:
2016-11-24 20:57:26 1171
原创 C++中的四种类型转换
C++中的四种类型转换标签(空格分隔): c++类型转换有c风格的,当然还有c++风格的。c风格的转换的格式很简单(TYPE)EXPRESSION,但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换成指向非const对象的指针,把一个指向基类对象的指针转换成指向一个派生类对象的指针,这两种转换之间的差别是巨大
2016-11-21 15:22:29 273
原创 复习sql(一)
复习sql(一)标签(空格分隔): mysql数据检索,去除重复的数据select distinct vend_id from products限制返回行数//从第一行开始返回最多5行 select prod_name from products limit 5 //从行3开始的4行 select prod_name from products limit 3,4;单列排序数据//默
2016-11-18 23:20:06 394
原创 搭建自己的SQLiteDataBase框架(五)
搭建自己的SQLiteDataBase框架(五)一对多关系,同样也有两种关系,1,关联表存储对应关系,2,直接数据库操作增删改查 此时实体类的对应模型如下:@Table(name = "developer")public class Developer implements Serializable { private static final long serialVersionU
2016-11-17 11:16:46 476 1
原创 搭建自己的SQLiteDataBase框架(四)
搭建自己的SQLiteDataBase框架(四)一对一关系,此时就有两种情况,1,只存两者的关联关系,2,将另一实体也存入数据库中 此时引入一对一关系,Developer.java如下:@Table(name = "developer")public class Developer implements Serializable { @Column(id = true) pr
2016-11-17 10:35:18 332
原创 搭建自己的SQLiteDataBase框架(三)
搭建自己的SQLiteDataBase框架(三)标签(空格分隔): 未分类无表结构的对象存储@Table(name="developer")class Developer{ @Column(id = true) private String id; @Column private String name; @Column private int
2016-11-16 17:29:33 384
原创 搭建自己的SQLiteDataBase框架(二)
搭建自己的SQLiteDataBase框架(二)标签(空格分隔): 未分类基本数据类型的增删改查(CRUD) 删除: private void delete(String tableName, String where, String[] args) { db.delete(tableName, where, args); } public voi
2016-11-16 16:50:42 331
原创 搭建自己的SQLiteDataBase框架(-)
搭建自己的SQLiteDataBase框架(-)标签(空格分隔): 未分类为了提升自身的技能,有些时候就不能总依赖第三方的开源,虽然那些大牛写出来的东西很好用,但是对自身技能包却没有多大提升。所以还是决定写一下自己的DB框架,虽然写的不好,但是会提高自己的数据库操作技能,同时还能锻炼架构能力,实现从0到1的渐变。废话不多说,直接开始吧。需求分析 1. 建表 2. CRUD,即增
2016-11-16 15:24:15 821
原创 BuildConfig.debug always false
BuildConfig.debug always false标签(空格分隔): android如果是moude,自定义即可apply plugin: 'com.android.application'android {....buildTypes { release { minifyEnabled false buildConf
2016-11-09 11:09:09 1298
原创 Tcp编程下的多线程任务
Tcp编程下的多线程任务标签(空格分隔): tcp 多线程TCP通信为毛要引入多线程?基本 TCP 响应服务器一次只能处理一个客户端的请求。当一个客户端向一个已经被其他客户端占用的服务器发送连接请求时,虽然其在连接建立后即可向服务器端发送数据,服务器端在处理完已有客户端的请求前,却不会对新的客户端作出响应,。这种类型的服务器称为”迭代服务器( iterative server) “。迭代服务器按顺
2016-11-08 17:30:54 5031
原创 java中常见的运算总结
java中常见的运算总结标签(空格分隔): 运算最近看源码的时候总是遇到位运算,又有点忘记,现在就重现整理一下,常见运算,废话不多说,直接上代码,简洁明了。public class Calculate { public static void main(String[] args) { //全部都是先转化为二进制,在运算 //1,&运算 两个操作数中位都为1,结果
2016-11-08 14:52:09 295
原创 TCP/IP构建和解析协议消息
标签(空格分隔): 未分类在传输消息时,用Java内置的方法和工具确实很用,如:对象序列化,RMI远程调用等。但有时候,针对要传输的特定类型数据,实现自己的方法可能更简单、容易或有效。本章结束时我们再看一个简单的例子,对在实现别人定义的协议时可能用到的技术进行了介绍。这个例子程序是一个简单的”投票”协议,这里,一个客户端向服务器发送了一个请求消息,消息中包含了一个候选人 ID,范围是 0 至 100
2016-11-04 15:23:11 903
原创 一脸懵逼的Socket-http对比
一脸懵逼的Socket/http对比标签(空格分隔): http tcp今天整理一下已经懵逼好久的Socket,http。想要弄清出他们的区别,首先要弄清一下Tcp/Ip协议。TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何再它们之间传输的标准 , 从字面意思来看TCP/I
2016-11-03 23:01:29 444
原创 发送和接受数据
TCP 发送和接受数据标签(空格分隔): 未分类—应用程序协议中消息的成帧与解析程序间达成的这种包含了信息交换的形式和意义的共识称为协议,用来实现特定应用程序的协议叫做应用程序协议。前面章节中的回馈程序示例中的应用程序协议都过于简单:客户端和服务器的行为都不受它们之间所交换的信息内容的影响。而在绝大部分实际应用中,客户端和服务器的行为都要依赖于它们所交换的信息,因此应用程序协议通常更加复杂TCP
2016-11-03 18:00:02 728
原创 UDP编程
UDP编程标签(空格分隔): udp java UDP套接字: UDP 协议提供了一种不同于TCP协议的端到端服务。实际上UDP协议只实现两个功能: 1)在 IP 协议的基础上添加了另一层地址(端口), 2)对数据传输过程中可能产生的数据错误进行了检测,并抛弃已经损坏的数据。可以进行类比的理解:TCP协议与电话通信相似,而UDP协议则与邮件通信相似:你寄包裹或信件时不需要进行”连接”,但
2016-11-03 11:16:10 386
原创 TCP Socket编程
TCP Socket编程标签(空格分隔): tcp socket—java tcp ip socket编程1. Java 为 TCP 协议提供了两个类: Socket 类和 ServerSocket 类。一个 Socket 实例代表了TCP 连接的一端。一个 TCP 连接( TCP connection)是一条抽象的双向信道,两端分别由IP地址和端口号确定。在开始通信之前,要建立一个 TCP连接,这
2016-11-02 15:24:17 440
原创 Socket协议简介
Socket协议简介标签(空格分隔): tcp ip udp socket学习java tcp/ip socket编程编写 TCP 客户端程序,在实例化 Socket 类时,要注意,底层的 TCP 协议只能处理 IP 协议,如果传递的第一个参数是主机名字而不是你 IP 地址,Socket 类具体实现的时候会将其解析成相应的地址,若因为某些原因连接失败,构造函数会抛出一个 IOException 异
2016-11-02 13:51:04 418
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人