自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (13)
  • 收藏
  • 关注

原创 Retrofit源码解析

Retrofit源码解析Retrofit概述Retrofi是对OkHttp的封装,简化了网络请求。使用Retrofi完成网络请求的一般步骤如下:使用Retrofit定义的 http注解,定义一个与Http API对应的java接口。实例化一个Retrofit实例调用Retrofit.create()方法,并将定义好的接口的类类型传递给这个方法,获得这个接口的

2017-07-30 22:30:25 452

原创 Retrofit详解

Retrofit详解简介Retrofit是一个将Http API转化为Java接口,最终将接口转换为 callable 对象,并能执行同步和异步Http请求的Http Client。具体来讲,使用Retrofit的步骤包括:使用注解来定义Http API的Java接口。定义好接口之后,通过Retrofit实例生成接口实例通过调用接口实例的方法,获取Call对

2017-07-28 12:13:11 851

转载 开源项目解析之--Okio

Retrofit,OkHttp,Okio 是 Square 团队开源的安卓平台网络层三板斧,它们逐层分工,非常优雅地解决我们对网络请求甚至更广泛的 I/O 操作的需求。其中最底层的 Okio 堪称小而美,功能也更基础,应用更广泛。这次我们就对它进行一个详细的分析。本文的分析基于 Okio 截至 2016.8.4 的最新源码,非常建议大家下载 Okio 源码之后,跟着本文,过一遍源码。

2017-06-21 11:28:36 1895

原创 Android动画详解(属性动画、视图动画和帧动画)

Android 动画框架Android提供了三种动画系统:Property Animation: 属性动画,3.0引入,比较灵活,能够作用于所有对象View Animation:视图动画,只能作用于view对象,使用比较简单。Drawable Animation:帧动画,通过连续的加载 Drawable资源来实现动画效果。属性动画(Property Animatio

2017-06-01 14:43:54 482

原创 Picasso源码完全解析(七)-- CleanupThread 取消请求

Picasso源码完全解析(七)-- CleanupThread 取消请求在开发过程中,我们常常有这样一种应用场景:在使用ListView或者RecylerView或者GridView时,为了提高性能,会采用item复用机制,即默认加载一屏的item,当item变得不可用的时候用来显示下一个将要显示的item,这样避免重复创建和销毁item。如果item用来显示图片,那么会造成这样一个问题

2017-05-17 11:37:22 645 3

原创 Picasso源码完全解析(六)--请求的取消、暂停、和恢复

Picasso源码完全解析(六)--请求的取消、暂停、和恢复Picasso为管理请求,提供了取消、暂停和恢复请求的方法。请求的取消请求的取消通常是通过picasso.cancel方法执行的,最终会调用这个方法: private void cancelExistingRequest(Object target) { checkMain(); Action

2017-05-17 09:14:55 1108

原创 Picasso源码完全解析(五)--图片的获取(BitmapHunter)

Picasso源码完全解析(五)--图片的获取(BitmapHunter)从上一节的分析可以知道,最终的Action是由dispatcher.performSubmit(action)执行的,看看这个方法的源码: void performSubmit(Action action) { performSubmit(action, true);}void performSu

2017-05-17 09:13:24 996

原创 Picasso源码完全解析(四)--Action分发和执行

Picasso完全源码解析(四)--Action分发和执行上节讲到 我们的每个图片请求最后生成一个Action被提交给Picasso执行,那么那么多的Action Picasso是怎么执行的呢?void enqueueAndSubmit(Action action) { Object target = action.getTarget(); if (target !=

2017-05-16 20:56:52 462

原创 Picasso源码完全解析(三)--Request和Action的创建

## Picasso完全源码解析(三)--Request和Action的创建##使用Picasso可以加载链接、文件、Uri以及引用自带的res资源,    public RequestCreator load(@Nullable Uri uri) {        return new RequestCreator(this, uri, 0);    }

2017-05-16 20:54:54 487

原创 Picasso源码完全解析(二)--Picasso实例的创建

## Picasso完全源码解析(二)--Picasso实例的创建 ##Picasso提供两种方式获得Picasso实例1. 全局的默认实例2. 通过Picasso.Builder自己构建Picasso实例由于Picasso是一个重量级的对象,它的创建涉及到很多资源和复杂的过程,比如它需要占用一部分内存作为缓存,需要开启回收线程等等,同时其销毁也比较复杂,频繁的创建

2017-05-16 20:53:21 525

原创 Picasso源码完全解析(一)--概述

##Picasso源码解析(一)--概述##Picasso是一个省事的图片加载框架,对于复杂的图片加载需求,常常像这样一行代码搞定:    Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);很多在Android上图片加载的陷阱都被Picasso自动处理,比如:1.

2017-05-16 20:51:06 586

原创 Android源码剖析之----系统服务的获取

我们先来看看Android的体系结构图:可以看到,在Framework层,最核心的功能是一些XXXManager,这些Manager有些是IBinder,有些不是IBinder但间接调用系统服务的IBInder实现功能。总之,这些XXXManager最终的功能是直接或者间接调用系统服务的IPC功能实现的。而系统的所有的服务都通过ServiceManager管理。我们知道,要

2016-01-29 17:09:24 307

原创 Java基础之---并发(Concurrency)和多线程

Java提供并发主要通过两种方式:Java语言和Java类库,从5.0之后,Java又提供了高级的API:java.util.concurrent,来更好的支持并发什么是并发?能够同时执行多项任务的能力叫并发。进程和线程进程和线程是两个基本的执行单位。进程是资源分配的基本单位,线程是处理机调度的基本单位进程进程是一个自包含的运行环境,它有一套完整的私有的资源。一

2016-01-25 21:11:40 662

原创 Java基础之----I/O

Java的 I/O主要包括两个方面:I/O Stream和File I/O。前者主要涉及Java的各种流式输入输出,这是Java简化输入输出的一种抽象概念;后者主要涉及文件操作和文件系统。I/O Stream部分,对应于java.io包,而 File I/O部分对应于 java.nio.file包。下面,分别对这几部分分别进行总结。这让我不禁想起了曾经腾讯的一次面试经历,“请说说Java

2016-01-25 20:25:01 285

原创 Java基础之----异常处理(1.7以上)

什么是异常异常是在程序执行过程中发生的,中断程序正常执行流程的事件.Exception是exceptional event的简称java编程语言用异常来处理错误和其他异常事件。处理过程 当在一个方法执行过程中发生一个异常,这个方法会创建一个异常对象,并把发这个对象传递给运行时系统,这个过程叫抛出异常,这个异常对象包含异常的类型以及异常发生时,程序的状态。运行时系统收到这个异

2016-01-25 17:01:07 1296

原创 未来一个月的计划

毕业已经2年半了,马上就要三年了,羊年已逝,猴年在望,在这辞旧迎新的时候,也该回顾一下过去,畅想一下未来,写博客就是最好的方式。不知道当初是怎么选择了计算机这个专业,11年开始接触Java,12年开始接触Android,毕业之后也一直从事android开发工作。回想一下,挺庆幸自己当初选择了软件工程这个专业。同时,不知不觉,毕业已经2年半了,工作之后,觉得有点遗憾的是大学四

2016-01-25 16:23:54 1382

原创 Java基础之-----集合框架

作为Java里面的核心知识,Java集合是比较难以掌握的知识点,这里,将我总结出来的知识和大家分享。

2016-01-25 01:57:32 402

原创 Android源码剖析之-----Activity的启动过程

在ActivityThread的创建过程中,介绍了关于ActivityThread类的创建过程。在main方法里主要完成了以下工作:为主线程创建Looper创建ActivityThread对象,在创建的时候,同时会实例化 mH和ApplicationThread对象。通过attach()方法,通知AMSActivityThread创建完毕初始化主线程的Handler加载

2016-01-23 20:23:11 321

原创 android 源码剖析之-------ActivityThread的创建过程

当我们第一次启动一个应用程序组件时,如果该应用没有任何组件存在,那么系统首先会创建该应用程序的ActivityThreadActivityThread的创建过程是很复杂的,当程序进程第一次启动时,系统会在主线程中调用ActivityThread的main()方法,从而完成ActivityThread的创建。ActivityThread是什么?网上有很多说法:ActivityThre

2016-01-23 17:12:58 1282

原创 android 支持的序列化-------Serializable和Parcelble

android 支持两种序列化:Serializable和Parcelble。前者是Java语言自带的序列化机制,通过读写文件实现对象的序列化和反序列化;后者是Android Os实现的序列化,它是通过读写内存来实现序列化,从而实现对象的传递。下面,就这两种方式详细说明。SerializableSerializable是Java提供的一个空接口。对象要想实现序列化,只需要如下:pu

2016-01-21 23:33:03 1123

原创 Android源码剖析之-------Handler机制详解

Handler是用来发送并处理消息的,是Android的消息机制的具体实现。一个Handler必须和一个Looper进行关联才能进行消息的发送和处理。Handler所完成的就是将一个操作从一个线程切换到与Handler关联的Looper所在的线程去执行。这个过程中,Looper扮演的是一个消息循环的角色。Looper里有一个MessageQueue,它是负责接收消息和取出消息,Handler负责的

2016-01-21 19:05:34 315

原创 Android源码剖析之------常见Window的创建过程

本文在之前所讲解的Window内部机制的基础上,进一步分析了Activity的Window的创建过程,即Activity的View同Window是如何进行关联,根本还是通过WindowManager完成的。

2016-01-19 22:40:09 307

原创 android 源码剖析之------Window的内部实现机制(添加、删除、更新)

今天,在做项目的过程中,实现了一个浮动窗口的功能,大致思路是这样的:通过实例化一个ImageButton并给这个Button设置监听,然后将这个Button传递给WindowManager的addView方法,在ListView滑动过程中,通过监听ListView的滑动状态,利用WindowManager的updateViewLayout方法,控制浮动窗口的显示和隐藏。功能实现很简单,但是,一直有

2016-01-19 20:55:51 1336

原创 Android MotionEvent事件分发机制源码剖析

最近,心血来潮,花时间研究了以下Android 触摸事件的分发和传递机制,从源码的角度剖析了事件分发和处理的流程,加深了对Android View体系的理解.相信大家和我一样都有过这样的困惑: Android对事件是怎么传递和处理的?我们平时写的回调时如何调用的?其实,源码里面有很完全的介绍.

2016-01-19 18:21:14 553

原创 Android性能优化总结

最近,看完了谷歌有关性能优化的专题课程,找到了Android性能优化的解决方案,同时也丰富了自己的知识。下面,通过渲染、内存、运算和电量几个方面对Android性能优化进行总结,和大家分享。

2016-01-11 17:16:36 297

原创 Android性能优化之渲染

Android性能优化之渲染篇APR 11TH, 2015 | COMMENTSGoogle近期在Udacity上发布了Android性能优化的在线课程,分别从渲染,运算与内存,电量几个方面介绍了如何去优化性能,这些课程是Google之前在Youtube上发布的Android性能优化典范专题课程的细化与补充。下面是渲染篇章的学习笔记,部分内容和前面的性能优化典范

2016-01-11 17:10:16 289

原创 Android性能优化典范

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

2016-01-10 19:04:53 333

原创 学Android两年半的感想

学习Android已经两年半了,感觉个人虽然在技术上有一定的积累,但还需要沉淀,因此,从现在开始,保持每周至少两篇博客,主要包括对Android的一些基础知识的总结和看法。虽然,这类博客多如牛毛,但谨通过这种方式作为提升和沉淀自己的一种方式,给后学这之路,同时和其他同仁交流。

2015-11-02 15:46:40 347

原创 android里的进程和线程

Android的组件运行在各自的进程里,系统会为每个进程创建UI线程,负责事件的分发,UI组件的创建,界面的重绘等工作,同时Android实现UI线程为不安全的,不能在非UI线程里操作在UI线程里创建的UI组件。同时,进程的优先级影响着系统对进程的管理,因此,理解Android进程和线程是十分必要的

2015-11-02 15:31:49 400

转载 Eclipse常用的快捷键

Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对

2015-10-14 23:26:50 267

转载 android开源项目

转载自:http://blog.csdn.net/vipzjyno1/article/details/22983641之前转载了一个开源项目的文章,发现那些都是没有系统的总结,这里又转载一篇有系统总结的文章。Android开源项目系列汇总已完成,包括:Android开源项目第一篇——个性化控件(View)篇Android开源项目第二篇——工具库篇

2015-10-14 21:32:15 547

原创 Java集合详解

本文参考Java Tutorial之集合篇,详情参考 http://docs.oracle.com/javase/tutorial/collections/index.html集合是一个统一的框架,很多语言都有,而且大致遵循相同的规范。在Java里, 接口、实现、和集合操作是集合框架的核心。其中,接口定义了基本的操作,主要有两类接口:Collection接口和Map接口,Collect

2015-06-30 20:02:49 298

转载 Http详解

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议的主要特点可概括如下:1.支持客户/服

2015-05-05 21:02:15 369

原创 学习编程最关键的是要掌握程序设计的理念

我们在学习编程的过程中,尤其是刚入门的过程中,wangw

2014-10-31 18:25:06 381

原创 java静态导入和非静态导入

对于java初学者而言,常会对静态导入和非静态导入存在疑惑,在《

2014-08-12 18:08:19 787 2

linux下C编程.pdf

linux下C编程.pdf,linux下c编程的入门资料,帮助你出不了解linux下C编程

2011-11-01

深入浅出MFC第二版候俊杰着源码.rar

深入浅出MFC第二版候俊杰着源码.rar包含《深入浅出MFC第二版)》的全部源代码,配合《深入浅出MFC第二版)》帮助你提升对MFC理解

2011-11-01

中文第三版-Effective C++.pdf

中文第三版-Effective C++.pdf,涵盖c++编程中的常见问题及解决方案,可以有效避免编程中的重大问题,帮助初学者提升编程水平,是一本C++进阶资料

2011-11-01

LINUX命令、编辑器与SHELL编程.part4.rar

LINUX命令、编辑器与SHELL编程.part4.rar,从基本的linux命令开始,贯穿linux编辑器即常用工具的使用,linux的文件系统,再到linux的Shell编程,适应本linux的入门资料

2011-11-01

LINUX系统分析与高级编程技术.pdf

LINUX系统分析与高级编程技术.pdf ,本人qq:578890499,欢迎大家与本人交流学习

2011-11-01

Linux命令大全速查手册(非常齐全).pdf

Linux命令大全速查手册(非常齐全),欢迎下载,本人qq:578890499,欢迎大家与本人交流学习

2011-11-01

linux命令大全pdf

全面的Linux操作命令大全,适合初学者

2011-11-01

android 开发套件

Android开发套件包含进行Android开发必须的SDK和ADT,使用者只需安装SDK并配置环境变量后,将ADT集成到Eclipse后,开发平台就搭建好了

2011-09-30

《Android应用开发揭秘》附带光盘代码.

《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言   第一部分 准备篇   第1章 Android开发简介   1.1 Android基本概念   1.1.1 Android简介   1.1.2 Android的系统构架   1.1.3 Android应用程序框架   1.2 OMS介绍   1.2.1 OPhone介绍   1.2.2 Widget介绍   1.3 小结   第2章 Android开发环境搭建   2.1 Android开发准备工作   2.2 开发包及其工具的安装和   配置   2.2.1 安装JDK和配置Java开发   环境   2.2.2 Eclipse的安装与汉化   2.2.3 SDK和ADT的安装和   配置   2.3 创建第一个Android项目——HeUoAndroid   2.3.1 创建HelloAndroid项目   2.3.2 运行HelloAndroid及模拟器的使用   2.3.3 调试HelloAndroid   2.4 小结   第二部分 基础篇   第3章 Android程序设计基础   3.1 Android程序框架   3.1.1 Android项目目录结构   3.1.2 Android应用解析   3.2 Android的生命周期   3.3 Android程序U设计   3.4 小结   第4章 用户界面开发   4.1 用户界面开发详解   4.1.1 用户界面简介   4.1.2 事件处理   4.2 常用控件应用   4.2.1 文本框(Textiew)   4.2.2 列表(ListView)   4.2.3 提示(T0ast)   4.2.4 编辑框(EditText)   4.2.5 单项选择(RadioGroup、RadioButton   4.2.6 多项选择(CheckBox)   4.2.7 下拉列表(Spinner)   4.2.8 自动提示(AutoComplete.TextⅥew)   4.2.9 日期和时间(DatePicker、TimePicker)   4.2.10 按钮(Button)   4.2.1l 菜单(Menu)   4.2.12 对话框(Dialog)   4.2.13 图片视图(ImageView)   4.2.14 带图标的按钮(ImageButton)   4.2.15 拖动效果(Gallery)   4.2.16 切换图片(hmgeSwilcher)   4.2.17 网格视图(GridView)   4.2.18 卷轴视图(ScrollView)   4.2.19 进度条(ProgressBar)   4.2.20 拖动条(SeekBar)   4.2.21 状态栏提示(Notification、NotificationManager)   4.2.22 对话框中的进度条(ProgressDialog)   4.3 界面布局   4.3.1 垂直线性布局   4.3.2 水平线性布局   4.3.3.相对布局(RelativeLayout)   4.3.4 表单布局(TableLayout)   4.3.5 切换卡(TabWidget)   4,4 小结   第5章 Android游戏开发   5.1 Android游戏开发框架   5.1.1 View类开发框架   5.1.2 SurfaceView类开发框架   5.2 Graphics类开发   5.5.1 Paint和Color类介绍   5.2.2 Canvas类介绍   5.2.3 几何图形绘制   5.2.4 字符串绘制   5.2.5 图像绘制   5.2.6 图像旋转   5.2.7 图像缩放   5.2.8 图像像素操作   5.2.9 Shader类介绍   5.2.10 双缓冲技术   5.2.11 全屏显示   5.2.12 获得屏幕属性   5.3 动画实现   5.3.1 Tween动画   5.3.2 Frame动画   5.3.3 GIF动画播放   5.4 小结   第6章 Android数据存储   6.1 Android数据存储初探   6.2 数据存储之Shared Preferences   6.3 数据存储之Files   6.4 数据存储之Network   6.5 Android数据库编程   6.5.1 SQLite简介   6.5.2 SQLite编程详解   6.5.3 SQLiteOpenHelper应用   6.6 数据共享(ContentProviders)   6.7 小结   第7 章多媒体开发   7.1 多媒体开发详解   7.1.1 Open Core   7.1.2 MediaPlayer   7.1.3 MediaRecorder   7.2 播放音乐   7.3 播放视频   7.4 录制歌曲   7.5 相机设置   7.6 闹钟设置   7.7 铃声设置   7.8 小结   第8章 网络与通信   8.1 网络通信基础   8.1.1 无线网络技术   8.1.2 Android网络基础   8.2 HTTP通信   8.2.1 HttpURLConnection接口   8.2.2 HttpClient接口   8.2.3 实时更新   8.3 Socket通信   8.3.1 Socket基础   8.3.2 Socket应用(简易聊天室)   8.4 网络通信的中文乱码问题   8.5 WebKit应用   8.5.1 WebKjt概述   8.5.2 WebView浏览网页   8.5.3 WebView与Javascript   8.6 WtFi介绍   8.7 蓝牙   8.8 小结   第9章 Android特色开发   9.1 传感器   9.2 语音识别   9.3 GoogleMap   9.3.1 GoogleMap概述   9.3.2 准备工作   9.3.3 GoogleMapAPI的使用   9.3.4 定位系统   9.4 桌面组件   9.4.1 快捷方式   9.4.2 实时文件夹   9.4.3 Widget开发   9.5 账户管理   9.6 小结   第三部分 实例篇   第10章 Android应用开发   实例   10.1 情境模式   10.2 文件管理器   10.3 通讯录   10.4 音乐播放器   10.5 天气预报   10.6 个人地图   10.7 Widget日历   10.8 小结   第11 章Android游戏开发实例   11.1 手机游戏开发简介   11.2 游戏框架设计   11.3 地图设计   11.4 主角设计   11.5 图层管理器   11.6 游戏音效   11.7 游戏存档   11.8 小结   第四部分 高级篇   第12章 AndroidOpenGL开发   基础   12.1 OpenGL简介   12.2 多边形   12.3 颜色   12.4 旋转   12.5 3D 空间   12.6 纹理映射   12.7 光照和事件   12.8 混合   12.9 小结   第13章 AndroidOpenGL综合   应用   13.1 移动图像   13.2.3D 世界   13.3 飘动的旗帜   13.4 显示列表   13.5 雾   13.6 粒子系统   13.7 蒙版   13.8 变形   13.9 小结   第14章 游戏引擎实现   14.1 游戏引擎介绍   14.1.1 什么是引擎   14.1.2 引擎的进化   14.1.3 常见的游戏引擎   14.1.4 Android游戏引擎   14.2 游戏引擎结构   14.2.1 游戏引擎原理   14.2.2 游戏引擎定位   14.2.3 游戏引擎框架   14.3 游戏引擎设计   14.3.1 游戏引擎结构和功能   设计   14.3.2 游戏引擎设计注意事项   14.4 游戏引擎实现   14.4.1 Activity类实现   14.4.2 流程控制和线程   14.4.3 游戏对象与对象管理   14.4.4 图形引擎   14.4.5 物理引擎   14.4.6 事件模块   14.4.7 工具模块   14.4.8 脚本引擎、音效模块、网络   模块   14.5 小结   第15章 优化技术   15.1 优化的基本知识   15.1.1 如何书写出优秀代码   15.1.2 编程规范   15.2 程序性能测试   15.2.1 计算性能测试   15.2.2 内存消耗测试   15.3 初级优化   15.4 高级优化   15.5 Android高效开发   15.6 AndroidUI优化   15.7 其他优化   15.7.1 zipalign   15.7.2 图片优化   15.8 小结   第五部分 扩展篇   第16章 Android NDK开发   16.1 AndroidNDK简介   16.2 安装和配置NDK开发环境   16.2.1 系统和软件需求   16.2.2 NDK开发环境搭建   16.2.3 编译第一个NDK程序   16.3 AndroidNDK开发   16.3.1 JNI接口设计   16.3.2 使用C\C++实现本地   方法   16.3 编译C\C++代码   16.4 AndroidNDK中使用0penGL   16.5小结   第17章 Android脚本环境   17.1 Android脚本环境简介   17.2 Android脚本环境安装   17.3如何编写Android脚本程序   17.4小结

2011-09-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除