Android源码解析
文章平均质量分 88
Yogurt_QaQ
我要去哪儿 Android研发工程师
一个有梦想的程序员
展开
-
Android 5.0源码分析---智能指针
android 源码分析android c++智能指针原创 2015-10-19 09:17:36 · 602 阅读 · 0 评论 -
Gradle For Android
第一章理解Gradle的基础 在Android Studio中 Android 工程是由gradle构建,你需要一段Gradle脚本,我们称之为build.gradle,一般来说在build.gradle中有一些基本的设置和属性来帮助你构建。相对于Ant或者Maven这会简单许多。 Gradle构建的脚本并不是用传统的XML文本语言来构建,它采用的是一种doma原创 2016-07-17 10:26:47 · 516 阅读 · 0 评论 -
Android MVP模式
曾经在一个项目中有一个Activity是负责机票的创单,也就是生成订单的工作,这里的逻辑非常复杂。创单的参数就达到200多个,在创单之前还有许多数据校验以及重复订单的校验操作,如果全部在Activity中实现将会导致代码极其臃肿。 这里我们提供一种解决的思路,就是MVP模式,首先笼统的介绍一下MVP: 我们将Activity复杂的逻辑处理移至另外的一个类(Presenter)中时,Activit原创 2016-06-27 23:08:41 · 411 阅读 · 0 评论 -
Android 5.0 源码分析 Handler Looper MessageQueue 底层原理
理解Looper类 每个线程都只能有一个Looper类的实例对象,looper类通过实例方法prepare() 创建: private static void prepare(boolean quitAllowed) { if (sThreadLocal.get() != null) { throw new RuntimeExcepti原创 2015-12-08 16:47:31 · 908 阅读 · 0 评论 -
ListView 源码研究 带你从源码中赞叹谷歌大吊们的代码艺术
ListView有一个非常神奇的功能,即使在ListView中加载非常非常多的数据,比如达到成百上千条甚至更多,ListView都不会发生OOM或者崩溃,而且随着我们手指滑动来浏览更多数据时,程序所占用的内存竟然都不会跟着增长。 在ListView的父类AbsListView中有一个非常重要的机制叫做RecycleBin: 它的实现是一个RecycleBin 类 我们看下里面的一些主要的方法c原创 2015-12-28 18:27:26 · 726 阅读 · 0 评论 -
Android JNI 详解
JNI的作用全称是 Java Native Interface (Java本地接口),JNI来自于Java,Android作为一种嵌入式的操作系统,有大量的驱动、硬件相关的功能必须在native层实现,其次C/C++代码的效率也是优于Java的代码,所以一些耗时的计算操作,例如一些加密算法还是应该用JNI开发。 在JNI中 无论是Java到C/C++还是C/C++到Java,中间都没有跨线程的调用原创 2015-11-20 10:48:34 · 463 阅读 · 0 评论 -
Android 启动过程的简述
1. Bootloader 引导 当我们按下手机的电源键时,首先会运行bootloader,bootloader的主要作用是初始化基本的硬件设备(例如 CPU 内存 Flash等),并且建立空间映射。目的是为装载Linux内核做好准备,在Linux内核装载完毕后,bootloader会被移除。 在bootloader的运行期间,用户可以通过规定好的组合键,可以进入系统的两个模块 - Fas原创 2015-11-24 15:19:03 · 563 阅读 · 0 评论 -
Android5.0 AsyncTask的实现分析
首先看一下AsyncTask在Android中的一个简单应用:package com.example.zhy_asynctask_demo01; import android.app.Activity; import android.app.ProgressDialog; import android.os.AsyncTask; import android.os.Bundle;原创 2015-12-09 11:54:30 · 502 阅读 · 0 评论 -
Android开发---测试教程
Android中的测试框架Android测试框架基于JUnit,JUnit是一个开放源代码的Java测试框架,用于编写和运行可重复的测试。尽管你可以使用JUnit测试Android工程,但Android工具允许你为应用程序的各个方面进行更为复杂的测试,包括单元层面及框架层面。 Android JUint 扩展提供了对Android特定组件(如Activity,Service)的测试支持,这些扩展原创 2015-10-30 15:27:09 · 554 阅读 · 0 评论 -
Android Synchronized的易错点
在Java中关键字Synchronized用于提供同步操作,主要的作用是在多线程的情况下,保持数据的一致。 一般有以下三种用法:保护一段代码class Foo implements Runnable { public void lockedMethod() { private String mLock; //....... synchronized(mLock) {原创 2015-11-20 15:43:00 · 429 阅读 · 0 评论 -
Android 5.0源码分析---startService的过程
我们之前讲到了ActivityManagerService作为控制Activity启动的重要环节,这里在启动Service中也会起到重要的作用。 在ActivityManagerService中有一个startService方法: public ComponentName startService(IApplicationThread caller, Intent service,原创 2015-10-27 10:28:08 · 879 阅读 · 0 评论 -
Android 5.0源码分析---ContentProvider中的ContentObserver研究
就像在Android中的广播机制一样,在ContentProvider中的消息通知机制也有一个管理者 叫做ContentService 现在我们进入到ContentResolver 中去看下是如何注册这个ContentObserver的: public final void registerContentObserver(Uri uri, boolean notifyForDescenden原创 2015-10-29 09:08:30 · 892 阅读 · 0 评论 -
Android 5.0源码分析---startService与bindService的区别
startService启动过程简述主进程调用到ActivityManagerService进程中,完成新进程的创建; 这一步主要是解析Intent中的参数,解析前面在AndroidManifest.xml定义的Service标签的intent-filter相关内容。紧接着启动一个新的进程。在新的进程启动完成后,从新进程调用到ActivityManagerService进程中,获取要在新进程启原创 2015-10-29 14:07:05 · 678 阅读 · 0 评论 -
Android 5.0源码分析---Content Provider的启动过程分析
ContentProvider是Android四大组件之一,承担着跨进程数据访问的重要职责,既然是跨进程,那就必须有一个客户端进程和一个ContentProvider进程,那么这里就又涉及到了进程间的通信。 Android提供了ContentProvider,一个程序可以通过实现一个Content provider的抽象接口将自己的数据完全暴露出去,而且Content providers是以类似数原创 2015-10-28 16:08:19 · 742 阅读 · 0 评论 -
Android5.0 源码分析--- Launcher启动应用的过程
Activity 启动过程 通过Luancher启动原创 2015-10-26 14:50:07 · 2123 阅读 · 0 评论 -
Android5.0 源码研究---进程间通信 Linux内核源码部分解析
什么叫进程间通信:一般而言,进程有单独的地址空间。我们可以了解下可执行程序被装载到内存后建立的一系列映射等理解这一点。如此以来意味着如果我们有两个进程(进程A和进程B),那么,在进程A中声明的数据对于进程B是不可用的。而且,进程B看不到进程A中发生的事件,反之亦然。如果进程A和B一起工作来完成某个任务,必须有一个在两个进程间通信信息和时间的方法。进程和线程不同,相同进程中的线程中的一些原创 2015-10-20 19:15:20 · 1297 阅读 · 0 评论 -
Android 5.0源码解析 ---Activity源码分析
Context上下文环境的创建我们进入到context这个类中发现这个类是一个抽象类:public abstract class Context {}在这个类中基本是抽象方法,Activity是继承于ContextThemeWrapper,ContextThemeWrapper则是继承于ContextWrapper又继承于Context。 在上一篇介绍startActivity的过程中最后一步是原创 2015-11-04 17:33:07 · 1744 阅读 · 0 评论 -
Android 源码梳理
Android 源码梳理前言作为霜枫司机一年学习的总结,附上帅照一张。 目录1. Android系统启动过程分析 2. Android进程间通信源码梳理 3. Android匿名共享内存系统源码梳理Android系统启动过程分析 Android系统是基于Linux内核,当我们按下电源键以后Android设备执行了一些操作。 对于Androi原创 2016-12-31 19:18:35 · 1738 阅读 · 2 评论