
android
文章平均质量分 86
fengjie_123
巅峰
不在一万英尺的边缘
而在信念与汗水的狭缝之间
展开
-
Android Services使用示例
Android开发中,当需要创建在后台运行的程序的时候,就要使用到Service。Service 可以分为有无限生命和有限生命两种。特别需要注意的是Service跟Activities是不同的(简单来说可以理解为后台与前台的区别),例如,如果需要使用Service的话,需要调用startService(),从而利用startService()去调用Service中的OnCreate()和onS转载 2015-05-29 01:34:27 · 500 阅读 · 0 评论 -
深入了解Handler消息机制(一)
在Android开发了一段时间之后,很多读者应该知道了一个知识点:UI不能在子线程中更新。这本来是一个伪命题,因为并不是UI不可以在子线程中更新,俄日好似UI不可以在不是它创建的线程中更新。只是绝大多数情况下UI都是从UI线程中创建的,因此在其他线程更新时会抛出异常。在这种情况下,当我们在子线程中完成了耗时操作之后,通常会通过一个Handler将结果传递给UI线程,然后在UI线程中更新相关的视图。原创 2016-04-13 21:50:04 · 401 阅读 · 0 评论 -
Android退出应用的方式
一、容器式建立一个全局容器,把所有的Activity存储起来,退出时循环遍历finish所有Activityimport java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;public class BaseActivity extends Activity转载 2016-05-19 22:18:55 · 300 阅读 · 0 评论 -
绑定服务
绑定服务是客户端-服务器接口中的服务器。绑定服务可让组件(例如 Activity)绑定到服务、发送请求、接收响应,甚至执行进程间通信 (IPC)。 绑定服务通常只在为其他应用组件服务时处于活动状态,不会无限期在后台运行。本文向您介绍如何创建绑定服务,包括如何绑定到来自其他应用组件的服务。 不过,您还应参阅服务文档,了解有关一般服务的更多信息,例如:如何利用服务传送通知、如何将服务设置为在前台运行等等原创 2016-07-22 15:19:03 · 464 阅读 · 0 评论 -
说说PendingIntent的内部机制
1 概述 在Android中,我们常常使用PendingIntent来表达一种“留待日后处理”的意思。从这个角度来说,PendingIntent可以被理解为一种特殊的异步处理机制。不过,单就命名而言,PendingIntent其实具有一定误导性,因为它既不继承于Intent,也不包含Intent,它的核心可以粗略地汇总成四个字——“异步激发”。 很明显,这种异步激发常常是要跨进程执行的。原创 2016-09-06 14:43:54 · 825 阅读 · 0 评论 -
init进程
前言众所周知的是,Linux中的所有进程都是由init进程创建并运行的。首先Linux内核启动,然后在用户空间启动init进程,再依次启动系统运行的其他进程。在系统启动完成后,init进程会作为守护进程监视其他进程。若是某个监视中的进程一旦终结,进入到僵死状态,它就会释放进程所占用的系统资源。其实,在Android平台中也存在init进程,除了提供以上常见的功能外,还提供几种额外的功能。与Linux原创 2016-10-25 20:49:37 · 884 阅读 · 0 评论 -
JNI与NDK
前言Android FrameWork由基于java语言的java层与基于C/C++语言的C/C++层组成的,每个层中的功能模块都是使用相应的语言编写的,并且每个层中的大部分模块是保持着千丝万缕的联系的。在Android FrameWork中,需要提供一种媒介或者桥梁,将java层和C/C++层有机的联系在一起,使得他们相互协调,共同完成某些任务。在这两层之间充当桥梁任务的就是java本地接口【JN原创 2016-10-25 20:41:25 · 531 阅读 · 0 评论 -
Android服务概要
Android服务的种类Android服务主要分为两类,一类是系统服务,它们是由Framework提供的;另一类是应用程序服务提供的,它们是应用程序开发者继承并实现Service类后开发的。 服原创 2016-10-26 22:26:02 · 623 阅读 · 0 评论 -
Zygote
从字面上看,Zygote是“受精卵、结合子”的意思。在Android中,Zygote是Android系统中相当重要的进程。它的主要功能是执行Android应用程序。在Android系统中运行新的应用,如同卵子受精分裂一样,需要跟Zygote进程结合后才能执行。原创 2016-10-26 12:52:19 · 598 阅读 · 0 评论 -
Android IPC Binder
Binder原本是IPC工具,但是在Android中它的主要作用是支持RPC(Remote Procedure Call),使得当前进程调用另一个进程的函数就像调用自身的函数是一样轻松简单。Binder由Service Server(含有Android的服务)、Service Client(使用服务的客户端)、Context Manager(确定服务的位置)、以及Binder Dirver四部分组成。原创 2016-10-27 21:24:26 · 393 阅读 · 0 评论 -
Android Context完全解析
Context相信所有的Android开发人员基本上每天都在接触,因为它太常见了。我们知道,Android应用都是使用Java语言来编写的,那么大家可以思考一下,一个Android程序和一个Java程序,他们最大的区别在哪里?划分界限又是什么呢?其实简单点分析,Android程序不像Java程序一样,随便创建一个类,写个main()方法就能跑了,而是要有一个完整的Android工程环境,在这个环境下原创 2016-05-19 21:31:39 · 241 阅读 · 0 评论 -
Android IPC之Messager用法示例
Messager可以翻译为信使,顾名思义,通过它可以在不同进程中传递Message对象,在Message中放入我们需要传递的数据,就可以轻松地实现数据的进程间穿传递了。Messager是一种轻量级的IPC方式,它的底层实现是AIDL。这个大家可以下去看一下Messager的构造方法就知道了。 Messager的使用方法很简单,它对AIDL做了封装,使得我们可以更简便的进行进程间通信。同时,由于它原创 2016-04-24 20:18:36 · 723 阅读 · 0 评论 -
Fragment和Activity
(一)Fragment和Activity的交互一个Fragment的实例总是和包含它的Activity直接相关。 Fragment可以通过getActivity() 方法来获得Activity的实例,然后就可以调用一些例如findViewById()之类的方法。 如: View listView = getActivity().findViewById(R.id.list); 但是注意调用原创 2016-05-08 17:10:10 · 1156 阅读 · 0 评论 -
Android中的控件
Android中的控件1.控件类的继承结构android.view.View类(视图类)呈现了最基本的UI构造块。一个视图占据屏幕上的一个方形区域,并且负责绘制和事件处理。Android中控件类的扩展结构如图3-1所示。 View有众多的扩展者,它们大部分是在android.widget包中,这些继承者实际上就是Android系统中的“控件”。View实际上就是各个控件的基类转载 2015-05-29 01:27:16 · 410 阅读 · 0 评论 -
ContentProvider
ContentProvider就是不同的应用之间数据传送的标准,一旦某个应用将自己的数据通过ContentProvider暴露了自己的数据操作的接口的话,那么不管该应用程序是否启动,其他的应用程序都可以痛过该接口来操作该应用程序的内部数据。ContentProvider以某种URI的形式对外提供数据,允许其他的应用对数据进行访问或修改;其他的应用通过ContentResolver根据URI去访原创 2015-08-16 21:15:22 · 293 阅读 · 0 评论 -
Android中的Binder跨进程通信机制
在code的世界里,两个对象能直接通信的前提是这两个对象都存在于相同的内存地址空间中,如果两个对象分别存在于两个不同的进程中,那么这不同进程的两个对象是不能直接相互调用的,这时我们就需要用到一种跨进程通信技术,使存在于两个不同进程的对象能够相互访问。 传统的跨进程通信方式有很多,比如Socket、信号量、管道、消息队列和共享内存等,这些传统的跨进程通信方式都在Linux系统中存在。大家都知道And原创 2016-04-11 22:34:07 · 811 阅读 · 0 评论 -
深入了解Handler消息机制(二)
上一篇主要说了: (1)Message,MessageQueue,Looper,Handler的工作原理就像是工厂的生产线。待加工的产品就是Message,“传送带”就是MessageQueue,电动机就是Looper,工人们就对应于处理事件的Handler。 (2)Android系统用链表来实现Message的缓存消息池。我们知道Android的应用程序的入口是ActivityThread.m原创 2016-04-14 00:05:38 · 429 阅读 · 0 评论 -
第11章 Android的线程和线程池
线程在Android中是一个很重要的概念,从用途上来说,线程分为主线程和子线程,主线程主要处理的是和界面相关的事情,而子线程则往往用于耗时的操作。由于Android的特性,如果在主线程中执行耗时操作就容易导致程序无法及时响应。除了Thread本身外,Android中可以扮演线程角色的还有很多很多,比如: AsyncTask,IntentService和HandlerThread。不同形式的线程虽然原创 2016-05-05 21:42:25 · 1849 阅读 · 0 评论 -
第1章 Activtiy的生命周期和启动模式
1.1 Activtiy的生命周期全解 Activity的生命周期分为两部分内容,一部分是典型情形下的生命周期,另一个就是异常情形下的生命周期。所谓的典型情形下的生命周期是指在用户参与的情况下,Activity所经历的生命周期的改变;而异常情况下的生命周期是指Activity被系统回收或者由于当前设备的Configuration发生变化而导致的Activity被销毁重建。 1.1.1 典型情况下原创 2016-05-05 09:34:28 · 2172 阅读 · 0 评论 -
第10章 Android的消息机制
本章主要讲的内容是Android的消息机制。 Android的消息机制主要是指Handler的运行机制,Handler的运行需要底层的MessageQueue和Looper的支撑。MessageQueue就是我们常说的消息队列,它的内部存储了一组消息,虽然叫做消息队列,但是它的内部却是采用单链表的数据结构才存储消息列表的。Looper为消息循环,由于MessageQueue只是一个消息的存储单元,原创 2016-05-06 22:47:25 · 1403 阅读 · 0 评论 -
杂记
字符串拼接java中的字符串在做拼接的时候是不会产生中间对象的。因为当Java编译器遇到字符串拼接的时候,会创建一个StringBuilder对象,后面的拼接,实际上是调用StringBuilder对象的append方法。内部类可以访问外部类中的私有变量的原因在内部类构造的时候,会将外部类的引用传递进来,并且作为内部类的一个属性,所以内部类会持有一个其外部类的引用。非静态内部类导致的内存泄露在Act原创 2016-05-18 20:28:02 · 301 阅读 · 1 评论 -
说说Android中的ANR
有过Android开发经历的人都不会对ANR陌生,它和崩溃一样是程序设计的问题。本文将以较为深入的视角来介绍什么是ANR,出现场景,如何避免以及如何定位分析ANR,希望可以帮助大家在编写程序时有所帮助。什么是ANRANR全称Application Not Responding,意思就是程序未响应。如果一个应用无法响应用户的输入,系统就会弹出一个ANR对话框,如下图所示,用户可以自行选择继续等待亦或者原创 2016-05-18 20:35:56 · 281 阅读 · 0 评论 -
Android Service Framework
Android Service Framework是一系列类的集合,它用来开发运行在Android平台上的各项服务。Android Service Framework提供了设计精良、复用度高的服务设计和实现,开发者可以使用Android Service Framework提供的各种类和接口,快速开发出可靠优良的服务。原创 2016-10-30 21:01:20 · 758 阅读 · 0 评论