
Android
文章平均质量分 77
zhangchaochao
拔掉脚上的刺,向新的方向起航
展开
-
ThreadLocal
ThreadLocal: ThreadLocal并不是一个本地线程,而是Thred的局部变量。ThreadLocal的接口方法:public ThreadLoacal()创建一个线程本地变量T get()此线程局部变量的当前线程的值T initalValue()返回此线程局部变量的初始值void remove()移除此线程局部变量当前线程的值。voi原创 2014-02-03 21:00:22 · 492 阅读 · 0 评论 -
使用AIDL实现进程间的通信
原文链接:http://blog.youkuaiyun.com/liuhe688/article/details/6400385在Android中,如果我们需要在不同进程间实现通信,就需要用到AIDL技术去完成。AIDL(Android Interface Definition Language)是一种接口定义语言,编译器通过*.aidl文件的描述信息生成符合通信协议的Java代码,我们无需自转载 2014-02-09 15:31:24 · 538 阅读 · 0 评论 -
BatteryService学习笔记
BatteryService是提供接口用于获取电池信息,充电状态等;BatteryService创建: battery = new BatteryService(context, lights); ServiceManager.addService("battery", battery);BatteryService构造方法:1. BatteryService定义的3段阀值原创 2014-02-09 11:27:59 · 1573 阅读 · 0 评论 -
PowerManager.WakeLock使用Demo
PowerManager.WakeLock 有加锁和解锁两种状态,加锁的方式有两种,一种是永久的锁住,这样的锁除非显式的放开,是不会解锁的,所以这种锁用起来要非常的小心。第二种锁是超时锁,这种锁会在锁住后一段时间解锁。 在创建了PowerManager.WakeLock 后,有两种机制,第一种是不计数锁机制,另一种是计数锁机制。这可以通过setReferenceCounted原创 2014-02-09 23:17:05 · 1021 阅读 · 0 评论 -
userActivity学习
例子: 打开收,并解锁进入桌面,如果在规定时间内不操作手机,那么屏幕将变暗,最后关闭。在此过程中,如果触动屏幕,屏幕又会重新变亮。这个触动屏幕的操作将触发userActivity函数的调用。上例中涉及两方面1. 不操作手机,屏幕将变暗,最后关闭。在PowerManagerService中,这是一个状态切换过程;2. 操作手机,将触发userActivity,此后屏幕变亮;源代码:原创 2014-02-09 21:56:43 · 3180 阅读 · 0 评论 -
Android的网络与通信
原文链接:http://www.cnblogs.com/qingblog/archive/2012/06/15/2550735.htmlAndroid的网络与通信第一部分 Android网络基础 Android平台浏览器采用了WeBKit引擎,这款名为Chorme Lite的Web浏览器拥有强大扩展特性,每个开发者都以为编写自己的插件,使得浏览器的功能更加完善。转载 2014-02-23 23:35:23 · 832 阅读 · 0 评论 -
APK反编译步骤
博客转载自:http://blog.youkuaiyun.com/sunboy_2050/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉转载 2014-02-23 23:36:37 · 765 阅读 · 0 评论 -
ActivityManagerService中的main函数
main方法源码:1. 创建一个AThread对象thr;2. AThread中创建ActivityManagerService对象;3. AThread中的成员mService指向ActivityManagerService对象引用;4. 创建ActivityThread对象;5. 获取上下文(Context)对象;6, 创建ActivityStack;7. star原创 2014-02-10 16:23:01 · 1096 阅读 · 0 评论 -
成为Android高手必须掌握的28大项内容和10个建议
原文链接:http://blog.youkuaiyun.com/jingwen3699/article/details/7723805一)成为Android高手必须掌握的8项基本要求 【1】 Android操作系统概述1. Android系统架构。 2. Android利用设计理念。 3. Android 开源知识。转载 2014-02-10 22:12:34 · 676 阅读 · 0 评论 -
简易MP3播放器实现
简易MP3实现包括以下几个部分:1. 下载模块1> 功能a> 从服务器下载歌曲列表b> 根据用户选择下载对应的MP3文件以及对应的lrc文件(如果存在)2> 涉及的技术a> 网络操作String path = "需要下载的文件路径";URl url = new URL(path);HttpURLConnection httpConn原创 2014-02-12 19:30:40 · 1386 阅读 · 0 评论 -
android中的本地服务
Service分为本地服务和远程服务,今天学习了其中的本地服务。1. 创建服务1> 创建服务的步骤:a> 写一个继承自Service的类;b> 覆写onBind方法,如果该服务不与Activity交互,返回null即可,如果需要与Activity进行交互,则需要写一个继承自Binder的类并实现你需要交互的接口;c> 根据需求可以覆写Service的生命周期函数,包括onC原创 2014-02-13 20:54:01 · 647 阅读 · 0 评论 -
通过Http协议从webservice中获取数据
通过Http协议从webservice中获取服务步骤:1. 当需要从webservice中获取某中服务的时候,首先要搞清楚服务提供方给出的要求2. 根据webservice中的说明编写相应的代码示例1. 服务URL :http://www.webxml.com.cn/WebServices/WeatherWebService.asmx2. getWeatherbyCityn原创 2014-02-14 15:47:51 · 3991 阅读 · 1 评论 -
android4.x Notification使用
android4.x中notification的使用1. 创建一个通知的步骤:1> 创建一个Notification的builderNotificationCompat.Builder builder = new NotificationCompat.Builder(this);builder.setSmallIcon(R.drawable.demo);builder.se原创 2014-02-13 17:22:03 · 1285 阅读 · 1 评论 -
android 服务概述 本地服务示例
原文链接:http://byandby.iteye.com/blog/1026110 Android 支持服务的概念。服务是在后台运行组件,没有用户界面。可以将这些组件想象为Windows 服务或UNIX服务。 与这些服务类型类似,Android服务始终可用,但无需主动执行某些操作。 Android 支持两种服务类型的服务:本地服务和远程服务。本地服务无法供在设备上运行其他应用程序转载 2014-02-13 21:02:09 · 603 阅读 · 0 评论 -
PreferenceActivity
原文链接:http://blog.youkuaiyun.com/zhang31jian/article/details/7967290现有某Activity专门用于手机属性设置 那么应该如何做呢?Activity + Preference 组合 前者用于界面构建 后者用于设置数据存放 其实 这是正确的 但是 这会比较繁琐 因为 每个设置选项 都要建立与其对应的Preference。所以现在转载 2014-02-14 21:57:11 · 668 阅读 · 0 评论 -
ANR分析
来自: 123 http://blog.youkuaiyun.com/tjy1985/article/details/6777355 http://blog.youkuaiyun.com/tjy1985/article/details/6777983 http://www.eoeandroid.com/forum.php转载 2014-03-04 22:20:40 · 1691 阅读 · 0 评论 -
Base64编码
原文链接:http://www.cnblogs.com/hongru/archive/2012/01/14/2321397.html我们的图片大部分都是可以转换成base64编码的data:image。 这个在将canvas保存为img的时候尤其有用。虽然除ie外,大部分现代浏览器都已经支持原生的基于base64的encode和decode,例如btoa和atob。(将canvas画布转载 2014-03-11 12:01:53 · 567 阅读 · 0 评论 -
Android开发指南-AIDL
原文链接:http://www.cnblogs.com/over140/archive/2011/03/08/1976890.html前言 本章内容为开发者指南(Dev Guide)/Developing/Tools/aidl,版本为Android2.3 r1,翻译来自"移动云_文斌",欢迎访问它的博客:"http://blog.youkuaiyun.com/caowenbin",再次感谢"移动云_转载 2014-02-09 18:59:38 · 683 阅读 · 0 评论 -
进程间复杂数据类型传递
进程间复杂数据类型传递涉及服务端和客户端1. 服务端1> 目录结构2> 传递的数据类Personpackage com.zhangchao.aidl;import android.os.Parcel;import android.os.Parcelable;public class Person implements Parcelable { private S原创 2014-02-09 18:14:17 · 790 阅读 · 0 评论 -
Looper
Looper类:class LooperThread extends Thread{ public void run() { //调用prepare Looper.prepare(); ...... //进入消息循环 Looper.loop(); }}......//启动线程new LooperThread().start();......原创 2014-02-03 22:09:21 · 601 阅读 · 0 评论 -
DropBoxManagerServer-日志文件管理
DropBoxManagerServer(DBMS): 用于生成和管理系统运行时的一些日志文件,这些日志文件大多记录的是系统或某个应用出错是的信息。DBMS构造方法都做了什么?/*DropBoxManagerServer构造方法*/public DropBoxManagerServer(final Context context, File path){ //path指定dr原创 2014-02-04 11:41:58 · 1453 阅读 · 0 评论 -
DeviceStorageManagerService学习
DeviceStorageManagerService部分源码:/*DeviceStorageManagerService构造方法*/public DeviceStorageManagerService(Context context){ mLastReportedFreeMemTime = 0; mContext = context; /* 数据共享 */ mConten原创 2014-02-04 17:45:33 · 2126 阅读 · 0 评论 -
PackageManagerService学习笔记二-构造方法
PKMS构造方法部分源码:/*Android 4.2.2源码*/public PackageManagerService(Context context, Installer installer, boolean factoryTest, boolean onlyCore){ /*---省略部分代码---*/ if(mSdkVersion <= 0) { Slog.w(TAG原创 2014-02-05 16:41:13 · 1206 阅读 · 0 评论 -
PackageManagerService学习笔记三-构造方法
PackageManagerService构造方法源码片段:{ /*---------------省略代码------------------*/ File dataDir = Environment.getDataDirectory(); mAppDataDir = new File(dataDir, "data");原创 2014-02-05 20:48:35 · 1018 阅读 · 0 评论 -
PackageManagerService学习笔记四-构造方法(扫描Package)
构造方法代码片段:{ /*-------------省略部分代码------------*/ /*优化扫描,check是否有需要字节码优化*/ // Set flag to monitor and not change apk file paths when // scanning install directories. /* 定义扫原创 2014-02-06 11:44:32 · 949 阅读 · 0 评论 -
PackageManagerService学习笔记五-构造方法
构造方法部分代码:原创 2014-02-06 16:18:06 · 1163 阅读 · 0 评论 -
PackageManagerService学习笔记六-构造函数
scanDirLI扫描流程:系统apk扫描完毕后,扫描第三方apk,进而将扫描得到的信息持久化到文件中。原创 2014-02-06 17:34:29 · 598 阅读 · 0 评论 -
Android中Parcelable接口的应用
原文链接:http://blog.youkuaiyun.com/stevenhu_223/article/details/9209575 在前面的一篇文章基于Android应用开发的跨进程通信实现(IPC)>介绍了通过跨进程实现基本数值类型(String)的传递,但是有的时候,需要跨进程实现传递相对较复杂的数据(比如图片之类的资源),而不仅仅是基本数据。那么,如何实现复杂数据跨进程的传递使用呢?这转载 2014-02-06 20:08:43 · 668 阅读 · 0 评论 -
android ContentResolver详解
原文链接:http://www.2cto.com/kf/201207/144022.html在Android 应用程序之间数据共享—-ContentResolver中,已经说明了Android是如何实现应用程序之间数据共享的,并详细解析了如何获取其他应用程序共享的数据。ContentProviders存储和检索数据,通过它可以让所有的应用程序访问到,这也是应用程序之间唯一共享数据的方法。那转载 2014-02-04 16:31:16 · 670 阅读 · 0 评论 -
PackageManagerService学习笔记一
PackageManagerService: 主要负责系统中的Package管理,应用程序的安装,卸载,信息查询等。PackageManagerService及其涉及的类间的关系PackageManagerService的main函数时在SystemServer中调用;/*Android 4.0.1源代码*/public static final IPackageMan原创 2014-02-04 22:32:51 · 1015 阅读 · 0 评论 -
PacakgeManagerService学习笔记七-APK installation
1. adb install: adb intall有多个参数,只做简单学习,adb install xxx.apk, adb是一个命令,install是其参数。/*--commandline.c--> adb_commandline*/int adb_commandline(int argc, char **argv){ /*-----------省略------------*/原创 2014-02-07 16:55:08 · 3257 阅读 · 0 评论 -
PacakgeManagerService学习笔记八-APK installation
/*DefaultContainerService.java*/1. getMinimalPackageInfo: 获取一个PackageInfoLite对象public PackageInfoLite getMinimalPackageInfo(final Uri fileUri, int flags, long threshold) { PackageInfoL原创 2014-02-07 17:57:12 · 1448 阅读 · 0 评论 -
PacakgeManagerService学习笔记九-APK installation
APK安装大致流程图:原创 2014-02-07 18:00:13 · 657 阅读 · 0 评论 -
PowerManagerService学习笔记一
PowerManagerService(PMS): 主要负责Android系统中电源管理方面的工作。与其直接关系的类成员有如下几个:PowerManagerService从IPowerManager.Stub派生,并实现了Watchdog.Monitor及LocalPowerManager接口;IPowerManager.Stub及其内部类Proxy均有aidl工具处理IPower-Man原创 2014-02-08 20:28:54 · 1458 阅读 · 0 评论 -
使用AIDL实现进程间的通信之复杂类型传递
原文链接:http://blog.youkuaiyun.com/liuhe688/article/details/6409708上次讲到简单的AIDL进程间通信的操作,客户端向服务端发送一个String类型的参数,服务端也返回一个String类型的结果,看似已经可以完成基本的需要了。不过在有的时候,简单的数据类型并不能满足我们的需求,我们就需要考虑怎样向服务端传递复杂的数据类型。今天就来讲一下如何向服转载 2014-02-09 17:23:00 · 718 阅读 · 0 评论 -
深入理解Android工程的编译过程
包进行自动化,比如建立每日构建系统、自动生成发布文件等等。这些都需要我们对Android工程的编译和打包有一个深入的理解,至少要知道它的每一步都做了什么,需要什么环境和工具,输入和输出是什么。那么我们就来挖掘一下Android的编译过程中的细节。首先,我们假定你的系统(什么系统都行,不限于Linux还是Windows系统,当然,我在这里默认使用Linux系统来举例子,但在 Window转载 2014-05-23 22:29:54 · 698 阅读 · 0 评论