- 博客(48)
- 资源 (10)
- 收藏
- 关注

原创 event disaptch
事件分发ViewdispatchTouchEvnetreturn true 消费 false 把事件向上抛, 交给parent的onTouchEvent处理 super 把事件交给自己的onTouchEvent处理(super交给本类的下一级,即onTouchEvent) onTouchEventreturn true 表示此事件到此为止,消费掉了 false、super 表示...
2020-05-19 16:55:34
139

原创 okhttp3
使用流程异步同步请求核心方法 getReponseWithInterceptorChain() 执行流程核心拦截器:RetryAndFollowUpInterceptor 职责:重试和对response进行下一步的处理BridgeInterceptor 职责:对request加上各种header,得到response后如果gzip压缩了进行解压CacheInterceptor 职责: 对request,resposne进行缓存,包括缓存时间计算,本次call是否直接取缓存等Co..
2020-05-19 16:49:39
551

原创 http https
http1.x http2.0http建立在TCP协议之上,而https建立在SSL或TSL之上SSL或TSL是在HTTP和TCP协议之间添加的一个安全协议层http1.x线程阻塞,同一时刻,同一域名的请求有一定数据,超过的会被阻塞http1.0客户端与服务器只保持短暂连接,每次都建立一个tcp请求(成本高,要三次握手),用完立即断开。服务器不跟踪每个客户,也不记录过去的请求http1.1加入Connection:keep-alive 默认打开 管道机制,即同一个t..
2020-05-19 16:48:39
874
原创 Binder ipc
Binder ipc通信Binder类结构:进程空间:包括用户空间和内核空间两条进程间,用户空间的数据不可共享,而内核空间的数据可以共享进程内用户与内核进行交互,称为系统调用Binder跨进程通信原理图注册服务流程请求服务流程使用服务流程...
2020-05-19 17:18:28
217
1
原创 Activity launch mode
Activity启动模式https://blog.youkuaiyun.com/zy_jibai/article/details/805870831.默认启动模式standard: 该模式可以被设定,不在manifest设定时候,Activity的默认模式就是standard。在该模式下,启动的Activity会依照启动顺序被依次压入Task中:2.栈顶复用模式singleTop:在该模式下,如果栈顶Activity为我们要新建的Activity(目标A...
2020-05-19 17:11:35
196
转载 内存优化
一般Java在内存分配时会涉及到以下区域栈(Stack):存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆(Heap):堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器(GC)来管理。静态域(static field): 静态存储区域就是指在固定的位置存放应用程序运行时一直存在的数据,Java在内存中专门划
2014-10-29 16:51:47
404
原创 线程:互斥资源与线程间通信(Producter&Comsumer)
/** * 生产者 */public class Producter implements Runnable{ private static final long PUODUCT_SPEED = 1000; // 生产速度 private Stock stock; // 库存 public Producter(Stock stock){ this.stoc
2014-08-20 16:14:53
518
原创 busybox安装过程
step1.adb push c:/busybox /mnt/sdcard/step2.用"re文件管理器" 把已经拷到sdcard的busybox移动到/system/xbin目录step3. 依次执行下面adb命令adb shellsumount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /systemcd /syste
2013-09-17 15:53:48
1008
原创 Android WebService调用
1.需引入JAR包 ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar,见附件。import org.ksoap2.SoapEnvelope;import org.ksoap2.SoapFault;import org.ksoap2.serialization.SoapObject;import org.ksoap2
2013-08-23 15:05:58
547
原创 Fragment替换
View container1 = this.findViewById(R.id.fl_container1 );View container2 = this.findViewById(R.id.fl_container2 ); Fragment f1 = new Fragment1();Fragment f2 = new Fragment2(); FragmentTransact
2013-08-12 17:00:48
718
原创 Dialog动画
Dialog dlg = new Dialog(context, R.style.Dialog);LinearLayout layout = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.route_dialog, null);Window w = dlg.getWindow();WindowManager.L
2013-08-01 18:04:54
504
原创 Socket注意事项
1. 堵塞Methodaccept(),read()和receive() 都是堵塞的我们可以使用Socket类、ServerSocket类和DatagramSocket类的setSoTimeout()方法,设置其阻塞的最长时间(以毫秒为单位)。如果在指定时间内这些方法没有返回,则将抛出一个InterruptedIOException异常对于Socket实例,
2013-06-13 09:30:10
916
原创 UDP Socket
UDP协议 UDP Socket在使用前不需要进行连接。TCP协议与电话通信相似,而UDP协议则与邮件通信相似:你寄包裹或信件时不需要进行"连接",但是你得为每个包裹和信件指定目的地址类似的,每条信息(即数据报文,datagram)负载了自己的地址信息,并与其他信息相互独立。在接收信息时,UDP Socket扮演的角色就像是一个信箱,从不同地址发送来的信件和包裹都可
2013-06-13 09:28:06
670
原创 Socket成帧
成帧的方式1.基于定界符(Delimiter-based) 2.显式长度(Explicit length) 接口:import java.io.IOException;import java.io.InputStream;import java.io.OutputStream; /** * Framer接口。 * frameMsg()方法用来添加成
2013-06-13 09:18:01
771
原创 代理模式(Proxy)
作用:为其它对象提供一种代理,以控制外界对该对象的访问 静态代理 代码:/** * 代理对象(Proxy) 和 被代理对象(Target) 的共同接口 * @author lyn * "出租" 的行为 */public interface ICanLease { public void lease();} /** * 房子
2013-06-13 09:10:31
577
原创 装饰模式(Decorator)
装饰模式(Decorator)扩展对象的功能,即扩展出来的对象的功能强大了, 而继承是扩展类的功能(即子类的功能变强大了),因此,可以在不创造更多子类的情况下将对象的功能加以扩展 如:DataOutputStream dos = new DataOutputStream( new BufferedOutputStream(new FileOutputStream(new File(pa
2013-06-13 08:58:51
444
原创 Strategy策略模式
Strategy策略模式 用意:针对一组算法,将每组算法封装到具有相同接口的独立类中,从而全它们可以相互替换。每一个算法,就是一个策略例如排序策略,冒泡A,快速B 都实现ISort 如: 集合中的Comparator接口 步骤:1.定义一个公共接口2.实现每个具体策略类,该类实现了公共接口3.在使用策略对象的类中保存一个对策略对象的引用 (如:jav
2013-06-13 08:52:19
461
原创 ClassLoader类加载器
ClassLoader .JVM结束生命周期1. System.exit(0) 正常退出System.exit(-1) 非0异常退出2. 正常运行结束3. 发现异常或错误退出4. 操作系统退出 class二进制文件的加载过程1. class二进制文件加载到内存2.
2013-06-13 08:32:07
540
转载 HTTP响应头信息
以下是HTTP/1.1中用到的头标:头标描述Content-Range随部分实体一同发送;标明被插入点的低位与高位字节的偏移,也标明此实体的总长度。例如: Content-Range:1001-2000/5000Content-Type表明发送或接受的实体的MIME类型。如: Content
2013-05-29 15:48:47
619
原创 软引用(SoftReference)
软引用(SoftReference) 如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加入到与之关联
2013-05-27 12:28:03
662
原创 Android数据存储
1。存储data/data目录 try { FileOutputStream outStream=this.openFileOutput("text.txt",Context.MODE_WORLD_READABLE); outStream.write(text.getText().toString().getBytes());
2013-05-27 11:37:22
393
原创 拍照
//通过Intent启动照相机String filePath = MyApplication.APP_TEMP + "/" + System.currentTimeMillis() + ".jpg"; photoFile = new File(filePath);if(!photoFile.exists()){ try { photoFile.createNewFile();
2013-05-22 12:01:41
468
原创 RecycleableRoundCorneImageView
圆角 自动回收 ImageViewstyles.xml //使用<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:lyn="http://schemas.android.com/apk/res/com.example.pa"
2013-05-22 10:55:44
487
原创 Handler,Looper,MessageQueue关系
本文从http://blog.youkuaiyun.com/l_yqing/article/details/7770729总结了重点,感谢原作者1.Loop.myLooper()得到当前线程的Looper对象,通过Loop.getMainLooper()可以获得当前进程的主线程的Looper对象。2.Android系统的消息队列(MessageQueue)和消息循环(Looper)都是针对
2013-05-15 09:44:33
484
原创 Acivity
1. Acivity用户与程序交互的一个载体,是应用程序的一个门面,相当于一个jsp页面,不同的是Activity里的是事件驱动,而jsp是request请求驱动2.生命周期3.Acitvity启动模式?Activty启动提供了四种启动模式。launchMode:Standard 每次启动新的活动窗口(new操作)singleTop 如果在栈顶是目
2013-05-15 08:50:16
635
转载 动画专题研究 一
动画专题研究 一动画效果编程基础--AnimationAndroid 动画类型Android的animation由四种类型组成XML中 alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果
2013-05-10 10:17:25
504
转载 Android ViewPager动态加载数据
最近做一个项目需要做viewpager这一块,需要滑动到哪一页再加载那一页的数据,后来做出来了,把自己的思路与大家分享一下。其实可以把viewpager当做一个listview那样来做都是在adapter中加载数据,先设置每个item的view样式。本文主要思路是想将所有的item的view存入一个views 列表中 ,通过instantiateItem(ViewGroup contain
2013-05-09 16:00:47
1644
转载 【Android】状态栏通知Notification、NotificationManager详解
在Android系统中,发一个状态栏通知还是很方便的。下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置? 首先,发送一个状态栏通知必须用到两个类: NotificationManager 、 Notification。 NotificationManager : 是状态栏通知的管理类,负责发通知、清楚通知等。NotificationManager 是一
2013-05-09 15:08:47
594
原创 最小化到状态栏
public class MainActivity extends Activity { private NotificationManager manager = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCont
2013-05-09 14:50:45
498
原创 最小化到状态栏
public class MainActivity extends Activity { NotificationManager manager = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
2013-05-09 14:47:16
278
ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar
2013-08-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人