Android adb shell启动应用程序的方法 2012

拧巴小姐 分享 2022-04-25 下载文档

Android adb shell启动应用程序的方法2012-09-17 14:57:52

分类: LINUX

在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am.

usage: am [subcommand] [options]

start an Activity: am start [-D]

-D: enable debugging

send a broadcast Intent: am broadcast

start an Instrumentation: am instrument [flags]

-r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT)

-e : set argument to

-p : write profiling data to

-w: wait for instrumentation to finish before returning

start profiling: am profile start

stop profiling: am profile stop

specifications include these flags:

[-a ] [-d ] [-t ]

[-c [-c ] ...]

[-e|--es ...]

[--ez ...]

[-e|--ei ...]

[-n ] [-f ] []

启动的方法为

$ adb shell

$ am start -n {包(package)名}/{包名}.{活动(activity)名称}

程序的入口类可以从每个应用的AndroidManifest.xml的文件中得到,以计算器(calculator)为例,它的

package="com.android.calculator2" …>…

由此计算器(calculator)的启动方法为:

# am start -n com.android.calculator2/com.android.calculator2.Calculator

对于HelloActivity这个示例工程,AndroidManifest.xml如下所示:

package="com.example.android.helloactivity" …>

由此它的启动方法为:

# am start -n

com.example.android.helloactivity/com.example.android.helloactivity.HelloActivity 其他的一些应用启动命令,如下所示:

calendar(日历)的启动方法为:

# am start -n com.android.calendar/af021cdc9e31433239689398unchActivity

AlarmClock(闹钟)的启动方法为:

# am start -n com.android.alarmclock/com.android.alarmclock.AlarmClock

Music 和 Video(音乐和视频)的启动方法为:

# am start -n com.android.music/com.android.music.MusicBrowserActivity

# am start -n com.android.music/com.android.music.VideoBrowserActivity

# am start -n com.android.music/com.android.music.MediaPlaybackActivity

Camera(照相机)的启动方法为:

# am start -n com.android.camera/com.android.camera.Camera

Browser(浏览器)的启动方法为:

# am start -n com.android.browser/com.android.browser.BrowserActivity

一般情况希望,一个Android应用对应一个工程。值得注意的是,有一些工程具有多个活动(activity),而有一些应用使用一个工程。例如:在 Android界面中,Music和Video是两个应用,但是它们使用的都是packages/apps/Music这一个工程。而在这个工程的AndroidManifest.xml文件中,有包含了不同的活动(activity)。

Music 和 Video(音乐和视频)的启动方法为:

# am start -n com.android.music/com.android.music.MusicBrowserActivity

# am start -n com.android.music/com.android.music.VideoBrowserActivity # am start -n com.android.music/com.android.music.MediaPlaybackActivity Camera(照相机)的启动方法为:

# am start -n com.android.camera/com.android.camera.Camera

Browser(浏览器)的启动方法为:

# am start -n com.android.browser/com.android.browser.BrowserActivity 启动浏览器 :

am start -a android.intent.action.VIEW -d af021cdc9e31433239689398/

拨打电话 :

am start -a android.intent.action.CALL -d tel:10086

启动 google map 直接定位到北京 :

am start -a android.intent.action.VIEW geo:0,0?q=beijing

url:af021cdc9e31433239689398/archive/2012/02/10/android-am

Android中如何获取系统应用程序列表与AndroidManifest.xml信息

11人收藏此文章, 我要收藏发表于6个月前(2013-04-17 15:25) , 已有318次阅读,共0个评论

摘要 Android系统为我们提供了很多服务管理的类,包括ActivityManager、PowerManager(电源管理)、AudioManager(音频管理) 等。除此之外,还提供了一个PackageManger管理类,它的主要职责是管理应用程序包。通过它,我们就可以获取应用程序信息。 PackageManager

Android 系统为我们提供了很多服务管理的类,包括ActivityManager、PowerManager(电源管理)、AudioManager(音频管理) 等。除此之外,还提供了一个PackageManger管理类,它的主要职责是管理应用程序包。通过它,我们就可以获取应用程序信息。

PackageManager的功能:

?安装,卸载应用

?查询permission相关信息

?查询Application相关信息(application,activity,receiver,service,provider及相应属性等)

?查询已安装应用

?增加,删除permission

?清除用户数据、缓存,代码段等

我们可以用PackageManager来显示系统安装的应用程序列表或者系统程序列表

相关类的介绍

PackageItemInfo类

说明: AndroidManifest.xml文件中所有节点的基类,提供了这些节点的基本

信息:a label、icon、 meta-data。它并不直接使用,而是由子类继承然后调用相应方法。

常用字段:

public int icon 获得该资源图片在R文件中的值 (对应于android:icon属性)

public int labelRes 获得该label在R文件中的值(对应于android:label属性)

public String name 获得该节点的name值 (对应于android:name属性)

public String packagename 获得该应用程序的包名 (对应于android:packagename属性)

常用方法:

Drawable loadIcon(PackageManager pm) 获得当前应用程序的图像CharSequence loadLabel(PackageManager pm) 获得当前应用程序的label

ActivityInfo类

继承自 PackageItemInfo

说明:获得应用程序中或者 节点的信息。

我们可以通过它来获取我们设置的任何属性,包括 theme 、launchMode、launchmode等

常用方法继承至PackageItemInfo类中的loadIcon()和loadLabel()

ServiceInfo 类

说明:同ActivityInfo类似,同样继承自 PackageItemInfo,只不过它表示的是节点信息。

ApplicationInfo类

继承自 PackageItemInfo

说明:获取一个特定引用程序中节点的信息。

字段说明:

flags字段: FLAG_SYSTEM 系统应用程序

FLAG_EXTERNAL_STORAGE 表示该应用安装在sdcard中

常用方法继承至PackageItemInfo类中的loadIcon()和loadLabel()

ResolveInfo类

说明:根据节点来获取其上一层目录的信息,通常是、

、节点信息。

常用字段:

public ActivityInfo activityInfo 获取 ActivityInfo对象,即或节点信息

public ServiceInfo serviceInfo 获取 ServiceInfo对象,即节点信息

常用方法:

Drawable loadIcon(PackageManager pm) 获得当前应用程序的图像CharSequence loadLabel(PackageManager pm) 获得当前应用程序的label

PackageInfo类

说明:手动获取AndroidManifest.xml文件的信息。

常用字段:

public String packageName 包名

public ActivityInfo[] activities 所有节点信息

public ApplicationInfo applicationInfo 节点信息,只有一个public ActivityInfo[] receivers 所有节点信息,多个

public ServiceInfo[] services 所有节点信息,多个

PackageManger 类

说明:获得已安装的应用程序信息。

可以通过getPackageManager()方法获得。

常用方法:

public abstract PackageManager getPackageManager()

功能:获得一个PackageManger对象

public abstrac tDrawable getApplicationIcon(StringpackageName)

参数: packageName 包名

功能:返回给定包名的图标,否则返回null

public abstract ApplicationInfo getApplicationInfo(String packageName, int flags)

参数:packagename 包名 flags 该ApplicationInfo是此flags标记,通常可以直接赋予常数0即可

功能:返回该ApplicationInfo对象

public abstract List getInstalledApplications(int flags)

参数:flag为一般为GET_UNINSTALLED_PACKAGES,那么此时会返回所有ApplicationInfo。

我们可以对ApplicationInfo 的flags过滤,得到我们需要的。

功能:返回给定条件的所有PackageInfo

public abstract List getInstalledPackages(int flags)

参数如上

功能:返回给定条件的所有PackageInfo

public abstractResolveInfo resolveActivity(Intent intent, int flags)

参数: intent 查寻条件,Activity所配置的action和category flags:MATCH_DEFAULT_ONLY :Category必须带有CATEGORY_DEFAULT的Activity,才匹配 GET_INTENT_FILTERS :匹配Intent条件即可 GET_RESOLVED_FILTER :匹配Intent条件即可功能:返回给定条件的ResolveInfo对象(本质上是Activity)

public abstract List queryIntentActivities(Intent intent, int flags)

参数同上

功能:返回给定条件的所有ResolveInfo对象(本质上是Activity),集合对象

public abstract ResolveInfo resolveService(Intent intent, int flags) 参数同上

功能:返回给定条件的ResolveInfo对象(本质上是Service)

public abstract List queryIntentServices(Intent intent, int flags)

参数同上

功能:返回给定条件的所有ResolveInfo对象(本质上是Service),集合对象

拓跋鼠

人生就像一场旅途,不在乎终点,而是注重过程,我们需要选择方向,更需要思考方法与策略。

Android学习笔记之AndroidManifest.xml文件解析

一、关于AndroidManifest.xml

AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试)

二、AndroidManifest.xml结构

三、各个节点的详细介绍

上面就是整个am(androidManifest).xml的结构,下面以外向内开始阐述~~1、第一层():(属性)

android:sharedUserId="string"

android:sharedUserLabel="string resource"

android:versionCode="integer"

android:versionName="string"

android:installLocation=["auto" | "internalOnly" | "preferExternal"] >


Android adb shell启动应用程序的方法 2012.doc 将本文的Word文档下载到电脑

下一篇:考研成绩第一考上清华研究生的经历

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7 元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xxxxxx QQ:xxxxxx