Intent.java分析

  代码位于frameworks/base/core/java/anroid/Content/Intent.java

Intent是对要进行操作的一种抽象描述。用action抽象操作,用data(android.net.Uri)抽象操作参数。

除此之外,category用来描述action所属的类别(添加action对应的component的额外属性)来指导系相应的component如何被匹配与被处理,type用来指定data的MIME类型;component指定用来执行action的组件,如果指定了这个,其他参数被忽略;extra用来给component相应方法附加额外的所需参数。

先打成package android.content,并import这些类

 1 17package android.content;
 2 18
 3 19import android.annotation.AnyRes;
 4 20import android.annotation.IntDef;
 5 21import android.annotation.SdkConstant;
 6 22import android.annotation.SdkConstant.SdkConstantType;
 7 23import android.annotation.SystemApi;
 8 24import android.content.pm.ActivityInfo;
 9 25import android.content.pm.ApplicationInfo;
10 26import android.content.pm.ComponentInfo;
11 27import android.content.pm.PackageManager;
12 28import android.content.pm.ResolveInfo;
13 29import android.content.res.Resources;
14 30import android.content.res.TypedArray;
15 31import android.graphics.Rect;
16 32import android.net.Uri;
17 33import android.os.Build;
18 34import android.os.Bundle;
19 35import android.os.IBinder;
20 36import android.os.Parcel;
21 37import android.os.Parcelable;
22 38import android.os.Process;
23 39import android.os.ResultReceiver;
24 40import android.os.ShellCommand;
25 41import android.os.StrictMode;
26 42import android.os.UserHandle;
27 43import android.provider.DocumentsContract;
28 44import android.provider.DocumentsProvider;
29 45import android.provider.MediaStore;
30 46import android.provider.OpenableColumns;
31 47import android.util.ArraySet;
32 48import android.util.AttributeSet;
33 49import android.util.Log;
34 50import com.android.internal.util.XmlUtils;
35 51import org.xmlpull.v1.XmlPullParser;
36 52import org.xmlpull.v1.XmlPullParserException;
37 53import org.xmlpull.v1.XmlSerializer;
38 54
39 55import java.io.IOException;
40 56import java.io.PrintWriter;
41 57import java.io.Serializable;
42 58import java.lang.annotation.Retention;
43 59import java.lang.annotation.RetentionPolicy;
44 60import java.net.URISyntaxException;
45 61import java.util.ArrayList;
46 62import java.util.HashSet;
47 63import java.util.List;
48 64import java.util.Locale;
49 65import java.util.Objects;
50 66import java.util.Set;
51 67
52 68import static android.content.ContentProvider.maybeAddUserId;

这个类实现了Parcelable和Cloneable接口

1 619public class Intent implements Parcelable, Cloneable {

定义了的attr字符串有action,category,type,component,data,flags

1 620    private static final String ATTR_ACTION = "action";
2 622    private static final String ATTR_CATEGORY = "category";
3 624    private static final String ATTR_TYPE = "type";
4 625    private static final String ATTR_COMPONENT = "component";
5 626    private static final String ATTR_DATA = "data";
6 627    private static final String ATTR_FLAGS = "flags";

tag字符串有categories,extra

1 621    private static final String TAG_CATEGORIES = "categories";
2 623    private static final String TAG_EXTRA = "extra";
时间: 2024-10-13 01:59:30

Intent.java分析的相关文章

实战Java分析:Hang in maven test

今天分享一个简单的hang的maven测试例子,download了系统代码之后发现系统load过程中,mvn 的unit test跑着跑着hang住了,试了2次都是一样,有段时间没完系统了,一下不太想得明白原因,就dump thread分析了下,记录下实践过程: 1. 系统是unix的,直接使用 ps -aux命令找到挂掉的java进程 ps -aux root      2958  6.4  4.9 2107828 87636 pts/1   Sl+  09:23   0:10 java -a

java分析源码-ReentrantLock

一.前言 ReentrantLock表示下面具体分析ReentrantLock源码. 二.ReentrantLock数据结构 ReentrantLock的底层是借助AbstractQueuedSynchronizer实现,所以其数据结构依附于AbstractQueuedSynchronizer的数据结构,关于AQS的数据结构,在前一篇已经介绍过,不再累赘. 三.ReentrantLock源码分析 3.1 类的继承关系 public class ReentrantLock implements L

启动入口Start.java分析

框架的启动器在包:org.ofbiz.base.start 入口为:Start.java的main方法 Start.java启动器内容: 步骤 详情 入参校验 help/status/shutdown/还是执行命令 加载配置 从环境变量ofbiz.system.props获取配置文件根据命令获取配置文件org/ofbiz/base/start/" + 命令 + ".properties关于配置和变量加载,重点关注/framework/start/src/org/ofbiz/base/s

Java 性能分析工具 , 第 2 部分:Java 内置监控工具

引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工具,其中包括: jcmd:打印一个 Java 进程的类,线程以及虚拟机信息.适合用在脚本中.使用 jcmd - h 来查看使用方法. jconsole:提供 JVM 活动的图形化展示,包括线程使用,类使用以及垃圾回收(GC)信息. jhat:帮助分析内存堆存储. jmap:提供 JVM 内存使用信息

linux下分析Java程序内存汇总

使用pmap查看进程内存 执行命令 使用pmap能够查看某一个进程(非java的也能够)的内存使用使用情况, 命令格式: pmap 进程id 演示样例说明 比如执行: pmap 12358 显示结果例如以下图(内容较多, 分成几张图说明): 内容開始部分 内容结束部分 上图中, 第一列.内存块起始地址 第二列.占用内存大小 第三列,内存权限 第四列.内存名称.anon表示动态分配的内存,stack表示栈内存 最后一行.占用内存总大小,请注意,此处为虚拟内存大小,占用的物理内存大小能够通过top查

Java应用常用性能分析工具

好的工具有能有效改善和提高工作效率或加速分析问题的进度,笔者将从事Java工作中常用的性能工具和大家分享下,如果感觉有用记得投一票哦,如果你有好的工具也可以分享给我 工具/原料 jvisualvm.exe jconsole.exe jca MAT jprofile httpwatch 方法/步骤 jvisualvm.exe JDK自带监控工具  在JDK安装目录\bin\目录下 可以对正在运行的Java应用程序进行比较全面的监控分析,配合相关的插件功能,组合成一个非常强大实用的Java性能监控分

转自:Android MediaScanner 详尽分析

转自http://blog.csdn.net/Innost/article/details/6083467 一 MediaScannerService 多媒体扫描是从MediaScannerService开始的.这是一个单独的package.位于 packages/providers/MediaProvider:含以下Java文件 l         MediaProvider.java l         MediaScannerReceiver.java l         MediaSca

安卓拒绝服务漏洞分析及漏洞检测

"超级拒绝服务漏洞"是一个安卓通用型拒绝服务漏洞,恶意攻击者可能利用此漏洞让手机中的任意应用崩溃无法正常工作,几乎影响目前市面上所有的安卓APP应用. 漏洞分析: 0xr0ot和Xbalien交流所有可能导致应用拒绝服务的异常类型时,发现了一处通用的本地拒绝服务漏洞.该通用型本地拒绝服务可以造成大面积的app拒绝服务. 针对序列化对象而出现的拒绝服务主要是由于应用中使用了getSerializableExtra() 的API,由于应用开发者没有对传入的数据做异常判断,恶意应用可以通过传

Android APP通用型拒绝服务、漏洞分析报告

点评:记得曾经有段时间很多SRC平台被刷了大量APP本地拒绝服务漏洞(目前腾讯金刚审计系统已经可检测此类漏洞),移动安全团队发现了一个安卓客户端的通用型拒绝服务漏洞,来看看他们的详细分析吧. 0xr0ot和Xbalien交流所有可能导致应用拒绝服务的异常类型时,发现了一处通用的本地拒绝服务漏洞.该通用型本地拒绝服务可以造成大面积的app拒绝服务. 针对序列化对象而出现的拒绝服务主要是由于应用中使用了getSerializableExtra() 的API,由于应用开发者没有对传入的数据做异常判断,