自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

狙击手

知识就是力量

  • 博客(87)
  • 收藏
  • 关注

原创 Handler机制的原理

andriod提供了Handler 和 Looper 来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。 2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新

2017-03-09 14:43:38 341

转载 Android 6种开源框架及简介

Android 6种开源框架及简介

2017-02-18 15:07:40 596

转载 Fragment$InstantiationException解决办法

android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.smile.android.open.ui.fragment.LeftBehideListFragment: make sure class name exists, is public, online casinos and has an empty constructor that is public

2015-11-09 11:57:44 974

转载 Android的四种启动模式和onNewIntent()

onNewIntent()非常好用,Activity第一启动的时候执行onCreate()---->onStart()---->onResume()等后续生命周期函数,也就时说第一次启动Activity并不会执行到onNewIntent(). 而后面如果再有想启动Activity的时候,那就是执行onNewIntent()---->onResart()------>onStart()----->onResume(). 如果android系统由于内存不足把已存在Activity释放掉了,那么再次调用的时候会

2015-11-05 10:15:12 457

转载 移动IM开发那些事:技术选型和常见问题

[转载] 最近在做一个iOS IM SDK,内测版已出炉,详见http://netease.im。在内部试用的阶段,不断有兄弟部门或者合作伙伴过来问各种技术细节,所以统一写一篇文章记录,统一介绍下一个IM APP的方方面面,包括技术选型(包括通讯方式,网络连接方式,协议选择)和常见问题。

2015-11-04 11:13:37 386

原创 Android中全局Application的onCreate多次调用问题

最近重构代码优化性能的时候,在log日志中发现每次启动应用时Application的onCreate执行了多次,导致了重复初始化资源,影响启动时间。最后发现这个是由独立进程引起的,即:process这个属性。一般来说Application的onCreate方法只会执行一次,如果应用中采用多进程方式,oncreate方法会执行多次,根据不同的进程名字进行不同的初始化

2015-10-29 14:32:51 4025

转载 IBeacon技术

“卖酒小店NE向您告知,今天的葡萄酒有优惠奥。请来逛逛吧。”一走进购物中心,iPhone就收到了这家购物中心里一家卖酒店铺的特价信息。来到这家店的葡萄酒货架前,智能手机的屏幕上又蹦出了“推荐智利产葡萄酒”的字样。把手伸向推荐的葡萄酒,iPhone上又收到了这瓶酒的详细信息。如今,走在时代前沿的店铺已经推出了这样的服务,苹果设在美国的直营店“Apple Store”就是其中之一。当顾客靠

2015-10-09 09:36:32 691

转载 移动应用开发必备工具盘点

移动应用开发的路程是艰辛的,在移动应用开发的道路上,一些实用的移动开发工具可以帮开发者更高效地开发应用。下面分享一些比较常用移动应用开发工具。一、项目管理和Bug跟踪工具Redmine:Redmine 是一个基于 Web 的项目管理和 Bug 跟踪工具,在实际开发中,用的最多的就是 Wiki 和 Bug 跟踪。二、产品原型制作工具Axure:产品原型设计工具,如

2015-09-30 16:55:18 449

原创 关于Android基本动画的应用

用Android基本动画做了一个账号输入的特效,在账号框获得焦点时label上移,输入内容时,密码框下滑渐显出来

2015-09-21 20:02:02 289

转载 怎样才是理想的程序员

第一、专注眼下见过太多心猿意马的程序员,我不得不把「专注眼下」作为天字第一条。他们往往有各式各样的小梦想,比如做个小茶农、做个小鹅贩、做产品、做销售、做投资,却被程序员的高薪或是没有转行的魄力「耽误」了,而因为不专注,他们不在意做好自己的本分,不在意锤炼自己的技能,不在意学习新兴的技术。不可否认,这世界上存在着伟大的产品(像乔老爷)、伟大的销售(像埃里森)、伟大的投资客(像彼得菲),而他们

2015-09-21 17:47:28 329

原创 Android开发进阶&优秀开源应用

Android开发进阶&优秀开源应用

2015-08-24 11:16:14 353

转载 Android中加载网络资源时的优化可使用(线程+缓存)解决

本文逻辑清晰,内容简单实用,主要讲述了1.异步加载图片,2.图片缓存,3.内存优化等业务实现,是一篇很好的学习样例,喜欢的可以收藏转载(注:本文源自网络)Android 中加载网络资源时的优化,基本的思路是线程+缓存来解决,下面提出一些优化: 1、采用线程池 2、内存缓存+文件缓存 3、内存缓存中网上很多是采用SoftReference来防止堆溢出,这儿严格限制只能使用最大JVM内

2015-08-10 16:05:22 429

原创 天生我才必有用,关键你知道你适合做什么!

曾子曰:吾日三省吾身。为人谋,而不忠乎?与朋友交,而不信乎?传不习乎?

2015-08-07 12:34:30 557

转载 Android Activity启动模式

Activity中的栈        Android的管理主要是通过Activity栈来进行,当一个Activity启动时,系统会根据其配置将它压入到一个特定的栈中,系统处于运行状态。当用户点击返回或则FINISH()了该Activity,那么它便会被从栈中压出,随之摧毁,按照Activity的生命周期可以知道,如果当前显示的栈中Activity没有被摧毁,那么打开新的Activity

2015-08-05 14:54:22 278

原创 Android自定义绘制图表

最近项目中需要数据统计进行图表展示,无奈设计效果太奇特无法使用一些图表控件来达到效果,只能自己动手绘制,咬牙坚持三天终于有点效果了,记录分享以备后用

2015-08-04 17:28:51 3180 1

原创 Android 应用App测试流程

“细节决定成败”,这句话对于一个开发工程师来说最贴切也最实用了,短短几个字就能体现出一个开发人员的功底,细节,再大的项目都是由若干个业务单元组成,每个单元都有相应的约束,业务单元和约束条件都是细节,对细节理解有多深就体现了对业务的理解有多深,另外,在代码实现上也会更细致更全面,产生的bug也就越少,代码也就更有生命力。如果不注重细节,可能表面上完成的需求功能,但是可能已经埋下了定时炸弹

2015-08-04 15:33:42 669

原创 Android开发小技巧整理(持续更新)

老话说的好,好记性不如烂笔头,东西做久很容易会忘掉,没有一个系统的整理,真是资源的浪费,想要成为技术大牛就要不停的积累吸收、分享、传递。

2015-08-03 15:52:09 603

原创 Android应用知识架构清单

基础是一门语言的基石,掌握了基础才能致用,对于一门语言包含哪些基础知识点我们更应该了然于胸,想了解熟知Android开发,那么就要了解它对应的内容。

2015-08-03 15:50:22 693

转载 Android数据安全

数据安全包含数据库数据安全、SD卡数据(外部存储)安全、RAM数据(内部存储)安全 i)android中操作数据库可使用SQLiteOpenHelper或ContentProvider的方式。使用SQLiteOpenHelper操作数据库时,数据库存    放在data/data//databases/目录,这个目录只能是应用自己访问,相对是安全的,但是root用户,这个目录也是

2015-07-23 10:19:31 544

转载 Android之Service与Activity通信机制

在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务,所以在我们实际开发中,就会常常遇到Activity与Service之间的通信,我们一般在Activity中启动后台Service,通过Intent来启动,Intent中我们可以传递数据给Service,而当我们Service执行某些操作之后想要更新UI线程,我们应该怎么做呢?接下来我就介绍两种方式

2015-07-16 16:20:04 329

转载 Android技巧:使用Service还是Thread

Service是Android的四大组件之一,被用来执行长时间的后台任务,同样,线程也可以实现在后台执行任务,它们的区别在哪呢?何时使用Service何时使用Thread呢?今天我也来说说我的理解和总结。 首先,需要了解Service的几个特点。(1) 默认情况下,Service其实是运行在主线程中的,如果需要执行复杂耗时的操作,必须在Service中再创建一个Thread来执行任

2015-07-13 14:49:09 248

转载 Android多线程编程小结

我们知道,Android系统为了提高程序的实时响应能力,不允许在UI线程中进行耗时的操作,否则会出现ANR异常,因此必须将耗时的任务放到非UI线程中执行。Android/Java提供了很多类来帮助大家完成异步操作,比如:Thread类,Timer类,AsyncTask类,HandlerThread类,以及Executor接口。这些类都分别在什么场合下使用呢?本文简单地总结一下Android开发

2015-07-09 17:01:53 315

转载 当程序员老去

程序员将代码注入生命去打造互联网的浪潮之巅,当有一天他们老了,会走向那里,会做些什么?       很多年以后,在我60岁的那天早晨,天刚蒙蒙亮我就起床了,先去公园晨练,然后回来做早餐(50岁的时候我学会了做饭),送完外孙上学,刚好8点。由于北京从2020年开始单双月限行了,这个月是单月,所以只能挤地铁。人一如既往的多,一小伙子要给我让座,看

2015-07-08 15:46:41 304

转载 Android源码分析-Context

前言       Context在android中的作用不言而喻,当我们访问当前应用的资源,启动一个新的activity的时候都需要提供Context,而这个Context到底是什么呢,这个问题好像很好回答又好像难以说清楚。从字面意思,Context的意思是“上下文”,或者也可以叫做环境、场景等,尽管如此,还是有点抽象。从类的继承来说,Context作为一个抽象的基类,它的实现子类有三种:Ap

2015-07-07 10:40:21 233

转载 Java基础编程:反射工具类

package com.test.java;import java.lang.reflect.Array;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;public class Reflection { /**  *

2015-07-03 17:56:02 244

转载 Android Fragments (Android官方文档中文版)

概述         Fragment表现Activity中UI的一个行为或者一部分。可以将多个fragment组合在一起,放在一个单独的activity中来创建一个多界面区域的UI,并可以在多个activity里重用某一个fragment。把fragment想象成一个activity的模块化区域,有它自己的生命周期,接收属于它自己的输入事件,并且可以在activity运行期间添加和删

2015-07-03 10:56:23 349

转载 Service的使用详解

Service的概念Service分为本地服务(LocalService)和远程服务(RemoteService):1、本地服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务因为是在同一进程因此不需要IPC,也不需要AIDL。相应bindService会方便很多。主进程被Kill后,服务便会终止。2、远程服务为独立的进程,对应进程名格式为所在包名加上

2015-07-02 11:55:50 609

转载 Java基础:类的实例化、static、父类构造函数执行顺序

重温java基础,以免自己以后犯原则性错误,这是最基本,最基础的东西。直接上代码:A.javapublic class A { int a1 = 8; int a2 = getA2(); { int a3 = 9; System.out.println("top of A() a1=" + a1 + " a2=" + a2 + " a3=" + a3); } p

2015-07-01 15:39:37 819

转载 Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)

一、Socket通信简介     Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信。两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。

2015-07-01 11:46:10 563

转载 网络通信协议的基本知识

大学学习网络基础的时候老师讲过,网络由下往上分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,三者从本质上来说没有可比性,socket则是对TCP/IP协议的封装和应用(程序员层面上)。也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如

2015-07-01 11:03:17 3423

转载 Android消息推送完美解决方案

1.推送方式基础知识:   在移动互联网时代以前的手机,如果有事情发生需要通知用户,则会有一个窗口弹出,将告诉用户正在发生什么事情。可能是未接电话的提示,日历的提醒,或是一封新的彩信。推送功能最早是被用于Email中,用来提示我们新的信息。由于时代的发展和移动互联网的热潮,推送功能更加地普及,已经不再仅仅用在推送邮件了,更多地用在我们的APP中了。  当我们开发需要和服务器交互的应用程

2015-06-30 15:08:30 636

转载 Java高级编程:堵塞队列

Java并发编程:阻塞队列     在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)。  使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但是有了阻塞队列就不

2015-06-04 11:34:54 400

转载 Java高级编程:深入剖析ThreadLocal

以下是本文目录大纲:  一.对ThreadLocal的理解  二.深入解析ThreadLocal类  三.ThreadLocal的应用场景       四.总结 一. 对ThreadLocal的理解 ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本

2015-06-03 17:24:53 437

原创 Handler源码分析

原理:某个Acitivty的UiThread启动并创建了1个Looper对象,在构造函数Looper()初始化时构造MessageQueue消息队列,并自动执行loop()方法开始循环处理Message消息,其实就是通过msg的target对象Handler回调dispatchMessage()方法。

2015-06-02 15:53:26 283

转载 在线阅读android源代码

在线阅读android源代码    http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/

2015-06-02 09:46:13 264

转载 android 代码混淆示例

应用背景项目中使用了 slidingmenu   actionbarsherlock   fastjson  volley   httpclient 等第三方库,并使用了  webview + js ,  有微信和微博分享功能。 # 指定代码的压缩级别-optimizationpasses 5

2015-04-17 14:44:02 405

转载 Android消息推送

Android消息推送1.引言  所谓的消息推送就是从服务器端向移动终端发送连接,传输一定的信息。比如一些新闻客户端,每隔一段时间收到一条或者多条通知,这就是从服务器端传来的推送消息;还比如常用的一些IM软件如微信、GTalk等,都具有服务器推送功能。  推送方法如下:  1)通过SMS进行服务器端和客户端的交流通信。  在Android平台上,你可以通过拦截SMS消息并且

2015-03-23 14:38:50 297

转载 倒计时功能类CountDownTimer说明及使用

CountDownTimer时android提供的实现倒计时功能的类,相对于java提供的Timer+TimerTask的方式,CountDownTimer使用更加简单,而且是线程安全的。下面是CountDownTimer的使用方法:1.定义CountDownTimer类 class CountDownTime extends CountDownTimer { Vi

2014-12-19 15:16:38 2161

转载 SharedPreference文件变化监听器OnSharedPreferenceChangeListener

OnSharedPreferenceChangeListener是Android中SharedPreference文件发生变化的监听器。通常我们想要进行监听,会实现如下的代码。 PreferenceManager.getDefaultSharedPreferences(getApplicationContext()) .registerOnSharedPreferenceChan

2014-12-19 10:58:53 3168

转载 Android中几种定时任务的种实现方法

一、采用Handler与线程的sleep(long)方法(不建议使用,java的实现方式)二、采用Handler的postDelayed(Runnable, long)方法(最简单的android实现)三、采用Handler与timer及TimerTask结合的方法(比较多的任务时建议使用)一、采用Handle与线程的sleep(long)方法Handler主要用来处理接受

2014-11-19 23:20:39 322

空空如也

空空如也

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

TA关注的人

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