关闭

Socket请求分析

1, Socket 相对Http来说, Socket比较简单。 Proxy proxy = new Proxy(Proxy.Type.SOCKS,mSocketAddress); mSocket = new Socket(proxy); mSocket.connect(new InetSocketAddress("•••", •••)); mOutput = mSocket.getOutpu...
阅读(79) 评论(0)

Okio框架分析--之二

4.2 SegmentPool SegmentPool就是片段池,可以说是管理Segment。三个变量如下, static final long MAX_SIZE = 64 * 1024; // 64 KiB. static Segment next; static long byteCount; MAX_SIZE表示片段池的最大容量,表示片端池中最多可以容纳8个片段,next将片段连接成...
阅读(494) 评论(0)

Okio框架分析--之一

4.Okio 其实,上面分析的大部分类都是位于external\okhttp\okio\okio 路劲下, okio是square公司开发的开源库。 4.1 Segment Segment是片段的意思, Segment定义如下, final class Segment { 实际上类似于一个双向链表,部分变量如下, static final int SIZE = 8192;// Segm...
阅读(493) 评论(0)

OutputStream/InputStream

3,OutputStream/InputStream 在开发时,在获取HttpURLConnection对象之后,一般首先调用其connect方法,然后获取OutputStream, 这样就可以往OutputStream里面写值了。最后获取InputStream对象并进行相关操作。 conn.connect(); mOutput = conn.getOutputStream(); mOutp...
阅读(54) 评论(0)

connect方法分析

2,connect方法 HttpURLConnectionImpl的connect方法如下, public final void connect() throws IOException { initHttpEngine(); boolean success; do { success = execute(false); } while (!succ...
阅读(381) 评论(0)

HttpURLConnection对象的获取

1,获取HttpURLConnection对象 获取HttpURLConnection对象有不同的方法. 1,通过URL对象获取, getUrl = new URL("http://•••/"); mSocketAddress = new InetSocketAddress(•••,mProxyPort); Proxy proxy = new Proxy(Proxy.Type.HTTP,mS...
阅读(51) 评论(0)

AsyncQueryHandler分析

作用: 对DB数据库进行异步操作,加快其数据处理的速度. 例如几千联系人的数据读取,按正常的处理速度会非常的慢, 使用AsyncQueryHandler,这就会大大的加快速度,增加用户的良好体验。 为什么会有AsyncQueryHandler? 1,若不用AsyncQueryHandler,直接在UI 线程调用ContentResolve去操作数据库,比如查询.如果数据库的数据很少, 无需...
阅读(50) 评论(0)

通话记录分析

1,通话记录 1.1 初始化 在Dialer中,通话记录信息都是通过CallLogActivity 显示,实际上,真正完成的是CallLogFragment 。CallLogActivity的内部类 ViewPagerAdapter的getItem方法如下, public Fragment getItem(int position) { switch (getRtlPositio...
阅读(50) 评论(0)

Broadcast 分析 --- 之二

3,发送广播 对应不同的广播,发送方法如下: public void sendBroadcast(Intent intent, String receiverPermission) public void sendOrderedBroadcast(Intent intent, String receiverPermission) public void sendStickyBroadcas...
阅读(82) 评论(0)

service 小结

前言: 服务是android中实现程序后台运行的解决方案,非常适合去执行那些不需要和用户交互而且还要求长期运行的任务。 服务的运行期不依赖于任何用户界面,即使被程序切换到了后台,或者启动了另外一个进程,服务依然保持正常运行。 1,服务所在进程依赖于创建服务的进程,当一个进程被杀掉时,所有依赖于该进程的服务所在进程也会停止运行。 2,服务中的代码默认在主线程中执行,如果有耗时操作,必须手动开...
阅读(75) 评论(0)

bindService 分析---之二

1.2 requestServiceBindingLocked 直接看ActiveServices的requestServiceBindingLocked方法, private final boolean requestServiceBindingLocked(ServiceRecord r, IntentBindRecord i, boolean execInFg, ...
阅读(71) 评论(0)

startService 分析--之二

3,服务所在进程 服务所在进程调用流程图如下, 3.1服务已启动 服务已启动,则直接调用sendServiceArgsLocked方法, private final void sendServiceArgsLocked(ServiceRecord r, boolean execInFg, boolean oomAdjusted) throws Tra...
阅读(81) 评论(0)

Activity 小结

Activity是Android系统中的四大组件之一,是可以包含用户界面的组件,主要用于和用户进行交互,一般的一个应用程序可以 包含0个到多个Activity。 1, 生命周期 Activity的生命周期如下所示, OnCreate方法:首次创建 Activity 时调用,主要执行一些初始化操作,比如调用setContentView方法加载界面布局资源等, 但是不要做一些耗...
阅读(76) 评论(0)

ContentProvider 源码分析---之三

3, ContentProvider实现 调用数据库的方法如下, ContentResolver resolver = getContentResolver(); Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,••• 实际步骤如下, 1,调用getContentResolver方法获取ContextImpl的内部类Applic...
阅读(61) 评论(0)

ContentProvider 源码分析---之二

2.1 AMS获取ContentProvider AMS中的ContentProvider方法调用流程图如下, AMS的getContentProviderImpl主要逻辑如下, 1,安全检查 if ((msg = checkContentProviderPermissionLocked(cpi, r, userId, checkCrossUser))!= null) { ...
阅读(72) 评论(0)
293条 共20页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:94673次
    • 积分:3755
    • 等级:
    • 排名:第8917名
    • 原创:286篇
    • 转载:0篇
    • 译文:0篇
    • 评论:11条
    最新评论