自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

转载 Android查缺补漏(线程篇)-- IntentService的源码浅析

本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8975114.html在Android中有两个比较容易弄混的概念,Service和Thread,我们都知道这两个东西都可以执行后台任务,但要注意的是Service是跑在主线程中的,如果不做特殊处理是会阻塞主线程的,而IntentService正好弥补了这一点,在《An...

2018-04-30 23:39:00 158

转载 Android查缺补漏(线程篇)-- AsyncTask的使用及原理详细分析

本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8515304.html一、AsyncTask的使用AsyncTask是一种轻量级的异步任务类,可以很方便的在线程池中执行异步任务,并且将进度和结果传递给主线程。其底层由Thread+handler实现。AsyncTask是一个抽象的泛型类,其类的声明如下:pub...

2018-03-08 16:35:00 142

转载 Android查缺补漏(IPC篇)-- 进程间通讯之Socket简介及示例

本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8425736.html进程间通讯篇系列文章目录:Android查缺补漏(IPC篇)-- 进程间通讯基础知识热身Android查缺补漏(IPC篇)-- Bundle、文件共享、ContentProvider、Messenger四种进程间通讯介绍Android查缺...

2018-03-01 18:05:00 196

转载 Android查缺补漏(IPC篇)-- 进程间通讯之AIDL详解

本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8436529.html进程间通讯篇系列文章目录:Android查缺补漏(IPC篇)-- 进程间通讯基础知识热身Android查缺补漏(IPC篇)-- Bundle、文件共享、ContentProvider、Messenger四种进程间通讯介绍Android查缺...

2018-02-28 10:11:00 903

转载 Android查缺补漏(IPC篇)-- Bundle、文件共享、ContentProvider、Messenger四种进程间通讯介绍...

本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8387752.html进程间通讯篇系列文章目录:Android查缺补漏(IPC篇)-- 进程间通讯基础知识热身Android查缺补漏(IPC篇)-- Bundle、文件共享、ContentProvider、Messenger四种进程间通讯介绍Android查缺...

2018-02-27 16:45:00 194

转载 Android查缺补漏(IPC篇)-- 进程间通讯基础知识热身

本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8479282.html在Android中进程间通信是比较难的一部分,同时又非常重要,针对进程间通信,博主会用四篇文章来介绍,本篇文章为IPC系列的开篇,主要介绍一些IPC中用到的一些概念、基础等,目的是让读者朋友们在学习IPC之前对一些必要的知识有一个大体的把握。在A...

2018-02-27 16:38:00 141

转载 Android查缺补漏(View篇)--布局文件中的“@+id”和“@id”有什么区别?

Android布局文件中的“@+id”和“@id”有什么区别?+id表示为控件指定一个id(新增一个id),如:<cn.codingblock.view.customer_view.MyView android:id="@+id/myview" ... />id表示引用一个现有的id,如:<cn.codin...

2018-01-28 23:10:00 155

转载 Android查缺补漏(View篇)--事件分发机制源码分析

在上一篇博文中分析了事件分发的流程及规则,本篇会从源码的角度更进一步理解事件分发机制的原理,如果对事件分发规则还不太清楚的童鞋,建议先看一下上一篇博文 《Android查缺补漏(View篇)--事件分发机制》 ,先来看一下本篇的分析思路,一会儿会按照事件传递的顺序,针对以下几点进行源码分析:Activity对点击事件的分发过程PhoneWindow是如何处理点击事件的顶级View...

2018-01-28 23:04:00 94

转载 Android查缺补漏(View篇)--事件分发机制

事件分发机制是Android中非常重要的一个知识点,同时也是难点,相信到目前为止很多Android开发者对事件分发机制并没有一个非常系统的认识,当然也包括博主个人在内。可能在平时的开发工作中我们并没有意识到事件分发机制起到的作用,其实它是时刻存在的只是我们不知道而已,就像一些滑动冲突、点击事件之间的冲突等等大多是因为事件分发处理不当导致的。想起了博主大学时做过一个小项目,里面就出现了滑动...

2018-01-14 10:46:00 110

转载 Android查缺补漏(View篇)--自定义View利器Canvas和Paint详解

上篇文章介绍了自定义View的创建流程,从宏观上给出了一个自定义View的创建步骤,本篇是上一篇文章的延续,介绍了自定义View中两个必不可少的工具Canvas和Paint,从细节上更进一步的讲解自定义View的详细绘制方法。如果把自定义View比作盖一座房子,那么上篇文章就相当于教会了我们怎么一步步的搭建房子的骨架,而本篇文章将要教会我们的是为房子的骨架添砖加瓦直至成型,甚至是怎么装修...

2018-01-13 14:08:00 152

转载 Android查缺补漏(View篇)--自定义 View 的基本流程

View是Android很重要的一部分,常用的View有Button、TextView、EditView、ListView、GridView、各种layout等等,开发者通过对这些View的各种组合以形成丰富多彩的交互界面,一个应用中界面交互的体验往往在应用的受欢迎程度上起了很关键得作用,所以开发者们大多会想方设法的做出一个更加精美的界面,例如:通过自定义View、深入学习View的原理...

2017-12-27 22:56:00 142

转载 Android查缺补漏(View篇)--自定义 View 中 wrap_content 无效的解决方案

自定义 View 中 wrap_content 无效的解决方案做过自定义 View 的童鞋都会发现,直接继承 View 的自定义控件需要重写 onMeasure() 方法,并设置 wrap_content 时的自身大小,否则在布局文件中对自定义控件在设置大小时,wrap_content 将等同于 match_parent。其实在 Android 中自带的控件中,也都对 onMeasu...

2017-12-27 22:46:00 159

转载 Android查缺补漏(View篇)--在 Activity 的 onCreate() 方法中为什么获取 View 的宽和高为0?...

在 Activity 的 onCreate() 方法中为什么获取 View 的宽和高为0 ?@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_view)...

2017-12-27 22:43:00 133

转载 Android查缺补漏--ContentProvider的使用

ContentProvider (内容提供者)是一种共享型组件,可以为系统内应用于与应用之间提供访问接口。ContentProvide要想正常工作需要三个关键点:ContentProvider:对外提供数据的访问接口。Uri:ContentProvider的唯一标识,外界可根据其访问对应的ContentProvider。ContentResolver比如,当应用A想把自己数...

2017-12-24 21:45:00 189

转载 Android查缺补漏--BroadcastReceiver的类型与使用

Broadcast 是一种被用于应用内和应用之间传递信息的机制。一个广播可以对应多个接受者。一个完整的广播机制,需要具有以下三个要素:发送广播的Broadcast接受广播的BroadcastReceiver传递信息的Intent广播的注册分为静态注册和动态注册:静态注册:静态注册的广播是指在AndroidManifest中注册的广播,此种广播在应用安装时就被系统解析,不需...

2017-12-24 21:44:00 120

转载 Android查缺补漏--Service和IntentService

Service的运行不依赖界面,即使程序被切换到后台,Service仍然能够保持正常运行。当某个应用程序进程被杀掉时,所有依赖于该进程的Service也会停止运行。Service 分为启动状态和绑定状态。当处于仅启动状态时,通过 stopService或 stopSelf 即可停止 Service。当处于绑定状态时需要通过 unBindService 和 stopService 结合使...

2017-12-24 21:42:00 153

转载 Android查缺补漏--Activity生命周期和启动模式

一、生命周期onCreate():启动Activity时,首次创建Activity时回调。onRestart():再次启动Activity时回调。onStart():首次启动Activity时在onCreate()之后被回调,再次启动时在onRestart()之后被回调。此时Activity已经可见但还没出现到前台不能与用户交互。onResume():在onStart()之后被...

2017-12-24 21:25:00 142

转载 给准备走上技术之路的在校大学生的一些建议

  这两天我大学的老师突然找我想让我以过来人的角度给在校的学弟学妹们分享一些经验,当然非常高兴能得到老师的认可和信任。完事后想了想干脆直接把这些建议也分享到博客上让更多的人看到,希望能够帮到更多的在校大学生。直奔主题,一会我会从大家都比较关心的以后的面试和当前在校阶段的规划两个方面说起,因为我本人是搞技术的,所以下面的建议主要是针对技术方面。关于面试  首先呢就是关于面试,目前为...

2017-11-27 11:44:00 141

转载 Android插件化-RePlugin项目集成与使用

前言:前一段时间新开源了一种全面插件化的方案-- RePlugin,之前一直都在关注 DroidPlugin 并且很早也在项目中试用了,但最终没有投入到真正的生产环节,一方面是项目中没有特别需要插件化的需求,另一方面也考虑到 DroidPlugin 不是特别稳定,Android系统每更新一次 DroidPlugin 可能就会出现一些 Bug,毕竟 Hook 了 Android 原生的太多...

2017-11-01 14:49:00 216

转载 Java数据结构和算法总结-字符串相关高频面试题算法

  前言:周末闲来无事,看了看字符串相关算法的讲解视频,收货颇丰,跟着视频讲解简单做了一下笔记,方便以后翻阅复习同时也很乐意分享给大家。什么字符串在算法中有多重要之类的大路边上的客套话就不多说了,直接上笔记吧。一、字符串java:String内置类型,不可更改。(如需更改可考虑:StringBuffer, StringBuilder,char[]等)二、归类...

2017-10-22 23:32:00 143

转载 Java数据结构和算法总结-冒泡排序、选择排序、插入排序算法分析

  前言:排序在算法中的地位自然不必多说,在许多工作中都用到了排序,就像学生成绩统计名次、商城商品销量排名、新闻的搜索热度排名等等。也正因为排序的应用范围如此之广,引起了许多人深入研究它的兴趣,直至今天,排序算法已经出现了很多种。本篇博文主要介绍常见的八种排序算法,总得来说,不同的排序算法在不同的场景下都有着自己独特的优点,例如一下简单的冒泡排序、选择排序、插入排序不仅思路简单,有利于我...

2017-10-05 23:37:00 129

转载 Java数据结构和算法总结-数组、二分查找

  前言:在平时开发中数组几乎是最基本也是最常用的数据类型,相比链表、二叉树等又简单很多,所以在学习数据和算法时用数组来作为一个起点再合适不过了。本篇博文的所有代码已上传 github ,对应工程的 array 模块,下载地址:https://github.com/lgliuwei/DataStructureStudy,项目工程为 IntelliJ IDEA 环境,童鞋不妨下载下来,参照...

2017-09-30 15:42:00 148

转载 小白也能看懂的插件化DroidPlugin原理(三)-- 如何拦截startActivity方法

  前言:在前两篇文章中分别介绍了动态代理、反射机制和Hook机制,如果对这些还不太了解的童鞋建议先去参考一下前两篇文章。经过了前面两篇文章的铺垫,终于可以玩点真刀实弹的了,本篇将会通过 Hook 掉 startActivity 方法的一个小例子来介绍如何找出合适的 Hook 切入点。开始之前我们需要知道的一点就是,其实在 Android 里面启动一个 Activity 可以通过两种方...

2017-08-01 22:27:00 160

转载 小白也能看懂的插件化DroidPlugin原理(二)-- 反射机制和Hook入门

  前言:在上一篇博文《小白也能看懂的插件化DroidPlugin原理(一)-- 动态代理》中详细介绍了 DroidPlugin 原理中涉及到的动态代理模式,看完上篇博文后你就会发现原来动态代理真的非常简单,只不过就是实现一个 InvocationHandler 接口重写一下 invoke 方法而已。不错,其实很多看似 high level 的技术都并没有想象中的那么晦涩难懂,只要你肯下...

2017-07-23 14:33:00 254

转载 小白也能看懂的插件化DroidPlugin原理(一)-- 动态代理

  前言:插件化在Android开发中的优点不言而喻,也有很多文章介绍插件化的优势,所以在此不再赘述。前一阵子在项目中用到 DroidPlugin 插件框架 ,近期准备投入生产环境时出现了一些小问题,所以决心花些时间研究了一下 DroidPlugin 插件框架的原理,以便再出现问题时也能从容应对。打开源码后发现尽是大把大把的 hook、binder、classloader 等等,很难摸清...

2017-07-22 11:41:00 146

转载 Android开发必知--使用View.setId的正确姿势

  这两天在写一个柱状图的自定义控件,用的直接继承ViewGroup的方式实现的,我们都知道,这是自定义控件里面最简单的一种了,有时间写个总结分享一下。这里我想说的重点是,在写这个自定义控件的时候遇到了个关于View.setId()小问题,在网上查了好多,有很多回答真是纯属扯淡,最后终于在stackoverflow上找到了零零碎碎的解决方案,stackoverflow真是一个好地方,几乎...

2015-12-31 22:28:00 354

转载 Fiddler基本用法以及如何对手机抓包

一、Fiddler是什么?  ·一种Web调试工具。  ·可以记录所有客户端和服务器的http和https请求。  ·允许监视、设置断点、修改输入输出数据。  官方文档(英文):http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureFiddler二、Fiddler下载  ...

2015-11-29 15:38:00 142

转载 Android学习笔记(十四)方便实用的首选项-PreferenceActivity

  突然发现已经好多天没更新博客了,最近公司项目正在进行一个大跨度的重构,又碰上有新需求,一连好多天都是很晚才到家。其实这篇博文在草稿箱里面也存了很久了,本来想着不发了,不过感觉PreferenceActivity在使用起来还是非常方便与实用的,再加上介绍PreferenceActivity的貌似不太多,还是发出来吧,以备自己和其他人后期参考。  Android提供了一个XML驱动的...

2015-11-08 00:51:00 109

转载 Android学习笔记(十三)SharedPreference必须掌握的基础

  我们在开发中,应用程序会保存少量数据,例如一些字符串、一些标记或者一些配置文件,这时候如果去使用SQLite保存这些数据的话,难免会显得大材小用,用起来也不方便,对于这种信息,保存在SharedPreferences中在合适不过了。一、SharedPreferences简介。  1、SharedPreferences是一种轻型的存储方式,它的原理是基于xml文件存储key-v...

2015-10-17 15:13:00 104

转载 设计模式之单例模式

  无论什么开发中,设计模式都起着关键的作用,其中比较常用的当属单例了,所谓单例,就是让一个类在项目中只存在一个对象,即使用到这个类的地方很多,也只存在一个对象。但是为什么要这样呢,为什么只创建一个对象呢,多个不也行吗?这个就要结合实际来说了,有些对象我们确实只需要一个,比如说线程池、缓存、硬件设备,如果多个实例就可能会导致冲突,出现运行结果不一致的现象。一、单例的基本框架  当...

2015-10-13 22:38:00 83

转载 Android学习笔记(十二)BroadcastReceiver的有序广播和优先级

  前两篇博文中简单整理了普通广播,其实还有有序广播,有序广播在开发中也是比不可少的,可以给广播接收者设定优先级来控制接受顺序,并却可以中断广播传递等等。一、两种Broadcast:  · 普通广播(Normal Broadcast):用sendBroadcast()方法发送。  普通广播是完全异步的,逻辑上可以在同一时刻被所有匹配的接受者接收到,消息传递效率高,缺点是接受者...

2015-10-06 17:50:00 464

转载 Android学习笔记(十一)BroadcastReceiver动态注册、注销示例

  在上一篇博文中简单介绍了一下BroadcastReceiver的相关知识点,本篇举一个在代码中动态的注册、注销BroadcastReceiver的栗子。1、首先创建一个MyReceiver并继承BroadcastReceiver,既然要动态注册该receiver的话,就无需在AndroidManifest.xml中配置它了: 1 public class MyReceiv...

2015-10-06 10:02:00 114

转载 Android学习笔记(十)BroadcastReceiver初体验

  BroadcastReceiver是Android系统的四大组件之一,本质是一种全局的监听器,用于接收系统全局的广播消息。真因为如此,BroadcastReceiver可以很方便的是实现系统中不同组件之间的通讯。一、创建BroadcastReceiver  创建一个BroadcastReceiver很简单,只需创建一个BroadcastReceiver的子类即可:...

2015-10-05 20:43:00 119

转载 Android学习笔记(九)一个例子弄清Service与Activity通信

  上一篇博文主要整理了Service的创建、绑定过程,本篇主要整理一下Service与Activity的通信方式。包括在启动一个Service时向它传递数据、怎样改变运行中的Service中得数据和侦听Service内数据的改变。  本篇将写一个demo来说明以下三个问题:  1、怎样在启动一个Service时向它传递数据  关键点:Intent传值,onStartComm...

2015-09-30 23:45:00 124

转载 Android学习笔记(八)深入分析Service启动、绑定过程

  Service是Android中一个重要的组件,它没有用户界面,可以运行在后太做一些耗时操作。Service可以被其他组件启动,甚至当用户切换到其他应用时,它仍然可以在后台保存运行。Service是Android四大组件中与Activity最相似的组件,都代表可执行的程序,区别在于:Service一直运行在后台,没有界面,一旦Service被启动,即完全具有自己的生命周期。一、...

2015-09-27 17:40:00 121

转载 Postman用法简介-Http请求模拟工具

  在我们平时开发中,特别是需要与接口打交道时,无论是写接口还是用接口,拿到接口后肯定都得提前测试一下,这样的话就非常需要有一个比较给力的Http请求模拟工具,现在流行的这种工具也挺多的,像火狐浏览器插件-RESTClient,Chrome浏览器插件-Postman等等。这里主要介绍一下Postman。一、Postman说明  Postman是一种网页调试与发送网页http请求...

2015-09-26 23:52:00 108

转载 Android学习笔记(七)两个Fragment简单跳转示例

  在前两篇博文中分别介绍了Fragment得基础和Fragment的生命周期,然而说了这么多Fragment到底怎么用呢以及我们为什么要使用Fragment?本篇博文将主要探讨这两个问题,首先说下在APP中有这好好Activity,跳转起来有那么简单,我们为什么还要使用Fragment呢?这是因为Fragment相对Activity而言更加的轻量级,使用起来也更加灵活,在一个程序的内部...

2015-09-14 23:03:00 187

转载 Android学习笔记(六)Fragment的生命周期

  在上一篇博文中对Fragment做了简单的介绍,现在再来探讨一下Fragment的生命周期。一、Fragment的几种状态:    与Activity类似,Fragment也有一下几种状态:  · 活动状态:当前Fragment位于前台,可见,可获得焦点。  · 暂停状态:其他Activity位于前台,该Fragment可见,不可获得焦点。  · 停止状态:不可见...

2015-09-07 18:47:00 104

转载 Android学习笔记(五)Fragment简介

  Fragment是在Android 3.0 (API level 11)中引入的Activity的子模块。初衷是为了适应大屏幕的平板电脑,我们只需要使用Fragment对UI组件进行分组、模块化管理,就能很方便在运行过程中动态更新Activity的界面。Fragment必须被嵌入Activity中使用个,虽然也拥有自己的生命周期,但其生命周期手它所在的Activity的生命周期的控制...

2015-08-31 18:34:00 87

转载 Android学习笔记(四)深入探讨Activity

  在应用程序中至少包含一个用来处理应用程序的主UI功能的主界面屏幕。这个主界面一般由多个Fragment组成,并由一组次要Activity支持。要在屏幕之间切换,就必须要启动一个新的Activity。一般的Activity都占据了整个显示屏,但可以创建成半透明或二者浮动的Activity。一、创建Activity  通过继承Activity类可以创建一个Activity窗口,基...

2015-08-26 11:27:00 82

空空如也

空空如也

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

TA关注的人

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