- 博客(87)
- 收藏
- 关注
原创 Handler机制的原理
andriod提供了Handler 和 Looper 来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。 2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新
2017-03-09 14:43:38
376
转载 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
1027
转载 Android的四种启动模式和onNewIntent()
onNewIntent()非常好用,Activity第一启动的时候执行onCreate()---->onStart()---->onResume()等后续生命周期函数,也就时说第一次启动Activity并不会执行到onNewIntent(). 而后面如果再有想启动Activity的时候,那就是执行onNewIntent()---->onResart()------>onStart()----->onResume(). 如果android系统由于内存不足把已存在Activity释放掉了,那么再次调用的时候会
2015-11-05 10:15:12
498
转载 移动IM开发那些事:技术选型和常见问题
[转载] 最近在做一个iOS IM SDK,内测版已出炉,详见http://netease.im。在内部试用的阶段,不断有兄弟部门或者合作伙伴过来问各种技术细节,所以统一写一篇文章记录,统一介绍下一个IM APP的方方面面,包括技术选型(包括通讯方式,网络连接方式,协议选择)和常见问题。
2015-11-04 11:13:37
427
原创 Android中全局Application的onCreate多次调用问题
最近重构代码优化性能的时候,在log日志中发现每次启动应用时Application的onCreate执行了多次,导致了重复初始化资源,影响启动时间。最后发现这个是由独立进程引起的,即:process这个属性。一般来说Application的onCreate方法只会执行一次,如果应用中采用多进程方式,oncreate方法会执行多次,根据不同的进程名字进行不同的初始化
2015-10-29 14:32:51
4139
转载 IBeacon技术
“卖酒小店NE向您告知,今天的葡萄酒有优惠奥。请来逛逛吧。”一走进购物中心,iPhone就收到了这家购物中心里一家卖酒店铺的特价信息。来到这家店的葡萄酒货架前,智能手机的屏幕上又蹦出了“推荐智利产葡萄酒”的字样。把手伸向推荐的葡萄酒,iPhone上又收到了这瓶酒的详细信息。如今,走在时代前沿的店铺已经推出了这样的服务,苹果设在美国的直营店“Apple Store”就是其中之一。当顾客靠
2015-10-09 09:36:32
739
转载 移动应用开发必备工具盘点
移动应用开发的路程是艰辛的,在移动应用开发的道路上,一些实用的移动开发工具可以帮开发者更高效地开发应用。下面分享一些比较常用移动应用开发工具。一、项目管理和Bug跟踪工具Redmine:Redmine 是一个基于 Web 的项目管理和 Bug 跟踪工具,在实际开发中,用的最多的就是 Wiki 和 Bug 跟踪。二、产品原型制作工具Axure:产品原型设计工具,如
2015-09-30 16:55:18
477
原创 关于Android基本动画的应用
用Android基本动画做了一个账号输入的特效,在账号框获得焦点时label上移,输入内容时,密码框下滑渐显出来
2015-09-21 20:02:02
322
转载 怎样才是理想的程序员
第一、专注眼下见过太多心猿意马的程序员,我不得不把「专注眼下」作为天字第一条。他们往往有各式各样的小梦想,比如做个小茶农、做个小鹅贩、做产品、做销售、做投资,却被程序员的高薪或是没有转行的魄力「耽误」了,而因为不专注,他们不在意做好自己的本分,不在意锤炼自己的技能,不在意学习新兴的技术。不可否认,这世界上存在着伟大的产品(像乔老爷)、伟大的销售(像埃里森)、伟大的投资客(像彼得菲),而他们
2015-09-21 17:47:28
351
转载 Android中加载网络资源时的优化可使用(线程+缓存)解决
本文逻辑清晰,内容简单实用,主要讲述了1.异步加载图片,2.图片缓存,3.内存优化等业务实现,是一篇很好的学习样例,喜欢的可以收藏转载(注:本文源自网络)Android 中加载网络资源时的优化,基本的思路是线程+缓存来解决,下面提出一些优化: 1、采用线程池 2、内存缓存+文件缓存 3、内存缓存中网上很多是采用SoftReference来防止堆溢出,这儿严格限制只能使用最大JVM内
2015-08-10 16:05:22
458
转载 Android Activity启动模式
Activity中的栈 Android的管理主要是通过Activity栈来进行,当一个Activity启动时,系统会根据其配置将它压入到一个特定的栈中,系统处于运行状态。当用户点击返回或则FINISH()了该Activity,那么它便会被从栈中压出,随之摧毁,按照Activity的生命周期可以知道,如果当前显示的栈中Activity没有被摧毁,那么打开新的Activity
2015-08-05 14:54:22
311
原创 Android自定义绘制图表
最近项目中需要数据统计进行图表展示,无奈设计效果太奇特无法使用一些图表控件来达到效果,只能自己动手绘制,咬牙坚持三天终于有点效果了,记录分享以备后用
2015-08-04 17:28:51
3265
原创 Android 应用App测试流程
“细节决定成败”,这句话对于一个开发工程师来说最贴切也最实用了,短短几个字就能体现出一个开发人员的功底,细节,再大的项目都是由若干个业务单元组成,每个单元都有相应的约束,业务单元和约束条件都是细节,对细节理解有多深就体现了对业务的理解有多深,另外,在代码实现上也会更细致更全面,产生的bug也就越少,代码也就更有生命力。如果不注重细节,可能表面上完成的需求功能,但是可能已经埋下了定时炸弹
2015-08-04 15:33:42
713
原创 Android开发小技巧整理(持续更新)
老话说的好,好记性不如烂笔头,东西做久很容易会忘掉,没有一个系统的整理,真是资源的浪费,想要成为技术大牛就要不停的积累吸收、分享、传递。
2015-08-03 15:52:09
640
原创 Android应用知识架构清单
基础是一门语言的基石,掌握了基础才能致用,对于一门语言包含哪些基础知识点我们更应该了然于胸,想了解熟知Android开发,那么就要了解它对应的内容。
2015-08-03 15:50:22
727
转载 Android数据安全
数据安全包含数据库数据安全、SD卡数据(外部存储)安全、RAM数据(内部存储)安全 i)android中操作数据库可使用SQLiteOpenHelper或ContentProvider的方式。使用SQLiteOpenHelper操作数据库时,数据库存 放在data/data//databases/目录,这个目录只能是应用自己访问,相对是安全的,但是root用户,这个目录也是
2015-07-23 10:19:31
587
转载 Android之Service与Activity通信机制
在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务,所以在我们实际开发中,就会常常遇到Activity与Service之间的通信,我们一般在Activity中启动后台Service,通过Intent来启动,Intent中我们可以传递数据给Service,而当我们Service执行某些操作之后想要更新UI线程,我们应该怎么做呢?接下来我就介绍两种方式
2015-07-16 16:20:04
376
转载 Android技巧:使用Service还是Thread
Service是Android的四大组件之一,被用来执行长时间的后台任务,同样,线程也可以实现在后台执行任务,它们的区别在哪呢?何时使用Service何时使用Thread呢?今天我也来说说我的理解和总结。 首先,需要了解Service的几个特点。(1) 默认情况下,Service其实是运行在主线程中的,如果需要执行复杂耗时的操作,必须在Service中再创建一个Thread来执行任
2015-07-13 14:49:09
276
转载 Android多线程编程小结
我们知道,Android系统为了提高程序的实时响应能力,不允许在UI线程中进行耗时的操作,否则会出现ANR异常,因此必须将耗时的任务放到非UI线程中执行。Android/Java提供了很多类来帮助大家完成异步操作,比如:Thread类,Timer类,AsyncTask类,HandlerThread类,以及Executor接口。这些类都分别在什么场合下使用呢?本文简单地总结一下Android开发
2015-07-09 17:01:53
346
转载 当程序员老去
程序员将代码注入生命去打造互联网的浪潮之巅,当有一天他们老了,会走向那里,会做些什么? 很多年以后,在我60岁的那天早晨,天刚蒙蒙亮我就起床了,先去公园晨练,然后回来做早餐(50岁的时候我学会了做饭),送完外孙上学,刚好8点。由于北京从2020年开始单双月限行了,这个月是单月,所以只能挤地铁。人一如既往的多,一小伙子要给我让座,看
2015-07-08 15:46:41
328
转载 Android源码分析-Context
前言 Context在android中的作用不言而喻,当我们访问当前应用的资源,启动一个新的activity的时候都需要提供Context,而这个Context到底是什么呢,这个问题好像很好回答又好像难以说清楚。从字面意思,Context的意思是“上下文”,或者也可以叫做环境、场景等,尽管如此,还是有点抽象。从类的继承来说,Context作为一个抽象的基类,它的实现子类有三种:Ap
2015-07-07 10:40:21
259
转载 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
279
转载 Android Fragments (Android官方文档中文版)
概述 Fragment表现Activity中UI的一个行为或者一部分。可以将多个fragment组合在一起,放在一个单独的activity中来创建一个多界面区域的UI,并可以在多个activity里重用某一个fragment。把fragment想象成一个activity的模块化区域,有它自己的生命周期,接收属于它自己的输入事件,并且可以在activity运行期间添加和删
2015-07-03 10:56:23
384
转载 Service的使用详解
Service的概念Service分为本地服务(LocalService)和远程服务(RemoteService):1、本地服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务因为是在同一进程因此不需要IPC,也不需要AIDL。相应bindService会方便很多。主进程被Kill后,服务便会终止。2、远程服务为独立的进程,对应进程名格式为所在包名加上
2015-07-02 11:55:50
726
转载 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
854
转载 Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
一、Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信。两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。
2015-07-01 11:46:10
600
转载 网络通信协议的基本知识
大学学习网络基础的时候老师讲过,网络由下往上分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,三者从本质上来说没有可比性,socket则是对TCP/IP协议的封装和应用(程序员层面上)。也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如
2015-07-01 11:03:17
3491
转载 Android消息推送完美解决方案
1.推送方式基础知识: 在移动互联网时代以前的手机,如果有事情发生需要通知用户,则会有一个窗口弹出,将告诉用户正在发生什么事情。可能是未接电话的提示,日历的提醒,或是一封新的彩信。推送功能最早是被用于Email中,用来提示我们新的信息。由于时代的发展和移动互联网的热潮,推送功能更加地普及,已经不再仅仅用在推送邮件了,更多地用在我们的APP中了。 当我们开发需要和服务器交互的应用程
2015-06-30 15:08:30
693
转载 Java高级编程:堵塞队列
Java并发编程:阻塞队列 在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)。 使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但是有了阻塞队列就不
2015-06-04 11:34:54
429
转载 Java高级编程:深入剖析ThreadLocal
以下是本文目录大纲: 一.对ThreadLocal的理解 二.深入解析ThreadLocal类 三.ThreadLocal的应用场景 四.总结 一. 对ThreadLocal的理解 ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本
2015-06-03 17:24:53
467
原创 Handler源码分析
原理:某个Acitivty的UiThread启动并创建了1个Looper对象,在构造函数Looper()初始化时构造MessageQueue消息队列,并自动执行loop()方法开始循环处理Message消息,其实就是通过msg的target对象Handler回调dispatchMessage()方法。
2015-06-02 15:53:26
305
转载 在线阅读android源代码
在线阅读android源代码 http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/
2015-06-02 09:46:13
292
转载 android 代码混淆示例
应用背景项目中使用了 slidingmenu actionbarsherlock fastjson volley httpclient 等第三方库,并使用了 webview + js , 有微信和微博分享功能。 # 指定代码的压缩级别-optimizationpasses 5
2015-04-17 14:44:02
433
转载 Android消息推送
Android消息推送1.引言 所谓的消息推送就是从服务器端向移动终端发送连接,传输一定的信息。比如一些新闻客户端,每隔一段时间收到一条或者多条通知,这就是从服务器端传来的推送消息;还比如常用的一些IM软件如微信、GTalk等,都具有服务器推送功能。 推送方法如下: 1)通过SMS进行服务器端和客户端的交流通信。 在Android平台上,你可以通过拦截SMS消息并且
2015-03-23 14:38:50
318
转载 倒计时功能类CountDownTimer说明及使用
CountDownTimer时android提供的实现倒计时功能的类,相对于java提供的Timer+TimerTask的方式,CountDownTimer使用更加简单,而且是线程安全的。下面是CountDownTimer的使用方法:1.定义CountDownTimer类 class CountDownTime extends CountDownTimer { Vi
2014-12-19 15:16:38
2230
转载 SharedPreference文件变化监听器OnSharedPreferenceChangeListener
OnSharedPreferenceChangeListener是Android中SharedPreference文件发生变化的监听器。通常我们想要进行监听,会实现如下的代码。 PreferenceManager.getDefaultSharedPreferences(getApplicationContext()) .registerOnSharedPreferenceChan
2014-12-19 10:58:53
3264
转载 Android中几种定时任务的种实现方法
一、采用Handler与线程的sleep(long)方法(不建议使用,java的实现方式)二、采用Handler的postDelayed(Runnable, long)方法(最简单的android实现)三、采用Handler与timer及TimerTask结合的方法(比较多的任务时建议使用)一、采用Handle与线程的sleep(long)方法Handler主要用来处理接受
2014-11-19 23:20:39
349
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人