android,,,manifest.xml 怎么有两个 <intentfilter是什么-filter >??每个作用是什么啊?

如何代码注册一个service?不在AndroidManifest.xml里面配置! -Android- TryCatch
>> Content
如何代码注册一个service?不在AndroidManifest.xml里面配置!
下面这段xml配置,如何用代码实现?&?xml&version="1.0"&encoding="utf-8"?&&manifest&xmlns:android="/apk/res/android"&&&&&&package="com.test"&&&&&&android:versionCode="1"&&&&&&android:versionName="1.0"&&&&&&application&android:label="@string/app_name"&android:icon="@drawable/icon"&&&&&&&&&&activity&android:name="ACTIVITY_ENTRY_NAME"&android:label="@string/app_name"&&&&&&&&&&&&&&intent-filter&&&&&&&&&&&&&&&&&&action&android:name="android.intent.action.MAIN"&/&&&&&&&&&&&&&&&&&&category&android:name="android.intent.category.LAUNCHER"&/&&&&&&&&&&&&&&/intent-filter&&&&&&&&&&/activity&&&&&&&&&&&&&&&&&//下面这段配置,如何用代码实现?&&&&&&&&&service&android:name=".service.MyService"&&&&&&&&&&&&&&intent-filter&&&&&&&&&&&&&&&&&&action&android:name="my.intent.action.TEST"/&&&&&&&&&&&&&&/intent-filter&&&&&&&&&&/service&&&&&&/application&&/manifest&&
------Solutions------
应该是不行的,manifast里不指定注册service的话,系统是不认的。
------Solutions------
敢不在工商局注册,小心封你店
------Solutions------
应该只能在manifast中注册的&系统只识别这个文件
------Solutions------
呵呵,楼主不怀好意~~
------Solutions------
要去搞神马&&黑别人?
------Solutions------
这个应该是个不行的吧,就像activity一样
------Solutions------安卓开发的时候在Manifest文件中有一个&intent-filter&里面包含&action&和&category&_百度知道
安卓开发的时候在Manifest文件中有一个&intent-filter&里面包含&action&和&category&
十分不理解他们是干什么用的,请高手指点一下,最好用简单的表达,太深奥了听不懂。目前我只知道,第一个Activity中必须在里面加入&action android:name=&android.intent.action.MAIN& &#47;&&category android:name=&android.intent.category.LAUNCHER& &#47;&这两行代码,否则就会出错。菜鸟在这里谢谢高手们了
android.intent.action.MAIN决定应用程序最先启动的Activityandroid.intent.category.LAUNCHER决定应用程序是否显示在程序列表里求给分~~~
其他类似问题
为您推荐:
其他1条回答
Android 会根据 manifest.xml 是启动相应的应用程序。
启用应用程序的时候,会启用对应的Activity,启用的这些Activity也要在manifest.xml中声明。
你说的这个&intent-filter&在声明的时候用到的,是在activity下一级,而&action&和&category&又是在&intent-filter&的下一级
&activity...
&intent-filter&...
&action...
&category...
&/intent-filter&
&/activity&
&intent-filter& 就理解为过滤器,它指定了启动应用程序的Intent对象的动作和类型
&action android:name=&android.intent.action.MAIN& /&
--& 表示这个activity是主入口,换句话说, 你只要启动这个应用程序,就要首先调用这个activity
&category android:name=&android.intent.category.L...
安卓的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁页面导航:
→ 正文内容 android 配置文件
AndroidManifest.xml配置文件解析
AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文将详细介绍,需要了解的朋友可以参考下
AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查阅。下面是一个标准的AndroidManifest.xml文件样例。
代码如下: &?xml version="1.0" encoding="utf-8"?& &manifest& &!-- 基本配置 --& &uses-permission /& &permission /& &permission-tree /& &permission-group /& &instrumentation /& &uses-sdk /& &uses-configuration /& &uses-feature /& &supports-screens /& &compatible-screens /& &supports-gl-texture /& &!-- 应用配置 --& &application& &!-- Activity 配置 --& &activity& &intent-filter& &action /& &category /& &data /& &/intent-filter& &meta-data /& &/activity& &activity-alias& &intent-filter& . . . &/intent-filter& &meta-data /& &/activity-alias& &!-- Service 配置 --& &service& &intent-filter& . . . &/intent-filter& &meta-data/& &/service& &!-- Receiver 配置 --& &receiver& &intent-filter& . . . &/intent-filter& &meta-data /& &/receiver& &!-- Provider 配置 --& &provider& &grant-uri-permission /& &meta-data /& &/provider& &!-- 所需类库配置 --& &uses-library /& &/application& &/manifest&
从以上示例代码中,我们可以看出Android配置文件采用XML作为描述语言,每个XML标签都不同的含义,大部分的配置参数都放在标签的属性中,下面我们便按照以上配置文件样例中的先后顺序来学习Android配置文件中主要元素与标签的用法。 &manifest& AndroidManifest.xml配置文件的根元素,必须包含一个&application&元素并且指定xlmns:android和package属性。xlmns:android指定了Android的命名空间,默认情况下是“/apk/res/android”;而package是标准的应用包名,也是一个应用进程的默认名称,以本书微博应用实例中的包名为例,即“com.app.demos”就是一个标准的Java应用包名,我们为了避免命名空间的冲突,一般会以应用的域名来作为包名。当然还有一些其他常用的属性需要注意一下,比如android:versionCode是给设备程序识别版本用的,必须是一个整数值代表app更新过多少次;而android:versionName则是给用户查看版本用的,需要具备一定的可读性,比如“1.0.0”这样的。&manifest&标签语法范例如下。 &manifest xmlns:android="/apk/res/android" package="string" android:sharedUserId="string" android:sharedUserLabel="string resource" android:versionCode="integer" android:versionName="string" android:installLocation=["auto" | "internalOnly" | "preferExternal"] & ... ... &/manifest& &uses-permission& 为了保证Android应用的安全性,应用框架制定了比较严格的权限系统,一个应用必须声明了正确的权限才可以使用相应的功能,例如我们需要让应用能够访问网络就需要配置“android.permission.INTERNET”,而如果要使用设备的相机功能,则需要设置“android.permission.CAMERA”等。&uses-permission&就是我们最经常使用的权限设定标签,我们通过设定android:name属性来声明相应的权限名,比如在微博应用实例中,我们就是根据应用的所需功能声明了对应的权限,相关代码如下。 &manifest ...& ... ... &!-- 网络相关功能 --& &uses-permission android:name="android.permission.INTERNET" /& &uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /& &uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /& &uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /& &!-- 读取电话状态 --& &uses-permission android:name="android.permission.READ_PHONE_STATE"/& &!-- 通知相关功能 --& &uses-permission android:name="android.permission.VIBRATE" /& ... ... &/manifest& &permission& 权限声明标签,定义了供给&uses-permission&使用的具体权限,通常情况下我们不需要为自己的应用程序声明某个权限,除非需要给其他应用程序提供可调用的代码或者数据,这个时候你才需要使用&permission&标签。该标签中提供了android:name权限名标签,权限图标android:icon以及权限描述android:description等属性,另外还可以和&permission-group&以及&permission-tree&配合使用来构造更有层次的、更有针对性权限系统。&permission&标签语法范例如下。 &permission android:description="string resource" android:icon="drawable resource" android:label="string resource" android:name="string" android:permissionGroup="string" android:protectionLevel=["normal" | "dangerous" | "signature" | "signatureOrSystem"] /& &instrumentation& 用于声明Instrumentation测试类来监控Android应用的行为并应用到相关的功能测试中,其中比较重要的属性有:测试功能开关android:functionalTest,profiling调试功能开关android:handleProfiling,测试用例目标对象android:targetPackage等。另外,我们需要注意的是Instrumentation对象是在应用程序的组件之前被实例化的,这点在组织测试逻辑的时候需要被考虑到。&instrumentation&标签语法范例如下。 &instrumentation android:functionalTest=["true" | "false"] android:handleProfiling=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:targetPackage="string" /& &uses-sdk& 用于指定Android应用中所需要使用的SDK的版本,比如我们的应用必须运行于Android 2.0以上版本的系统SDK之上,那么就需要指定应用支持最小的SDK版本数为5;当然,每个SDK版本都会有指定的整数值与之对应,比如我们最常用的Android 2.2.x的版本数是8。当然,除了可以指定最低版本之外,&uses-sdk&标签还可以指定最高版本和目标版本,语法范例如下。 &uses-sdk android:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer" /& &uses-configuration&与&uses-feature& 这两个标签都是用于描述应用所需要的硬件和软件特性,以便防止应用在没有这些特性的设备上安装。&uses-configuration&标签中,比如有些设备带有D-pad或者Trackball这些特殊硬件,那么android:reqFiveWayNav属性就需要设置为true;而如果有一些设备带有硬件键盘,android:reqHardKeyboard也需要被设置为true。另外,如果设备需要支持蓝牙,我们可以使用&uses-feature android:name="android.hardware.bluetooth" /&来支持这个功能。这两个标签主要用于支持一些特殊的设备中的应用,两个标签的语法范例分别如下。 &uses-configuration android:reqFiveWayNav=["true" | "false"] android:reqHardKeyboard=["true" | "false"] android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"] android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"] android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] /& &uses-feature android:name="string" android:required=["true" | "false"] android:glEsVersion="integer" /& &uses-library& 用于指定Android应用可使用的用户库,除了系统自带的android.app、android.content、android.view和android.widget这些默认类库之外,有些应用可能还需要一些其他的Java类库作为支持,这种情况下我们就可以使用&uses-library&标签让ClassLoader加载其类库供Android应用运行时用。&uses-library&标签的用法很简单,以下是语法范例。 &uses-library android:name="string" android:required=["true" | "false"] /& 小贴士: 当运行Java程序时,首先运行JVM(Java虚拟机),然后再把Java类加载到JVM里头运行,负责加载Java类的这部分就叫做ClassLoader。当然,ClassLoader是由多个部分构成的,每个部分都负责相应的加载工作。当运行一个程序的时候,JVM启动,运行BootstrapClassLoader,该ClassLoader加载java核心API(ExtClassLoader和AppClassLoader也在此时被加载),然后调用ExtClassLoader加载扩展API,最后AppClassLoader加载CLASSPATH目录下定义的Class,这就是一个Java程序最基本的加载流程。 &supports-screens& 对于一些应用或者游戏来说,只能支持某些屏幕大小的设备或者在某些设备中的效果比较好,我们就会使用&supports-screens&标签来指定支持的屏幕特征。其中比较重要的属性包括:屏幕自适应属性android:resizeable,小屏(android:smallScreens)、中屏(android:normalScreens)、大屏(android:largeScreens)和特大屏(android:xlargeScreens)支持属性,按屏幕渲染图像属性android:anyDensity以及最小屏幕宽度属性android:requiresSmallestWidthDp等。&supports-screens&标签的语法范例如下。 &supports-screens android:resizeable=["true"| "false"] android:smallScreens=["true" | "false"] android:normalScreens=["true" | "false"] android:largeScreens=["true" | "false"] android:xlargeScreens=["true" | "false"] android:anyDensity=["true" | "false"] android:requiresSmallestWidthDp="integer" android:compatibleWidthLimitDp="integer" android:largestWidthLimitDp="integer"/& &application& 应用配置的根元素,位于&manifest&下层,包含所有与应用有关配置的元素,其属性可以作为子元素的默认属性,常用的属性包括:应用名android:label,应用图标android:icon,应用主题android:theme等。当然,&application&标签还提供了其他丰富的配置属性,由于篇幅原因就不列举了,大家可以打开Android SDK文档来进一步学习,以下是语法范例。 &application android:allowTaskReparenting=["true" | "false"] android:backupAgent="string" android:debuggable=["true" | "false"] android:description="string resource" android:enabled=["true" | "false"] android:hasCode=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:killAfterRestore=["true" | "false"] android:label="string resource" android:logo="drawable resource" android:manageSpaceActivity="string" android:name="string" android:permission="string" android:persistent=["true" | "false"] android:process="string" android:restoreAnyVersion=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" & ... ... &/application& &activity& Activity活动组件(即界面控制器组件)的声明标签,Android应用中的每一个Activity都必须在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。&activity&标签中常用的属性有:Activity对应类名android:name,对应主题android:theme,加载模式android:launchMode(详见2.1.3.4节),键盘交互模式android:windowSoftInputMode等,其他的属性用法大家可以参考Android SDK文档学习。另外,&activity&标签还可以包含用于消息过滤的&intent-filter&元素,当然还有可用于存储预定义数据的&meta-data&元素,以下是&activity&标签的语法范例。 &activity android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:clearTaskOnLaunch=["true" | "false"] android:configChanges=["mcc", "mnc", "locale", "touchscreen", "keyboard", "keyboardHidden", "navigation", "orientation", "screenLayout", "fontScale", "uiMode"] android:enabled=["true" | "false"] android:excludeFromRecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:launchMode=["multiple" | "singleTop" | "singleTask" | "singleInstance"] android:multiprocess=["true" | "false"] android:name="string" android:noHistory=["true" | "false"] android:permission="string" android:process="string" android:screenOrientation=["unspecified" | "user" | "behind" | "landscape" | "portrait" | "sensor" | "nosensor"] android:stateNotNeeded=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden", "stateVisible", "stateAlwaysVisible", "adjustUnspecified", "adjustResize", "adjustPan"] & ... ... &/activity& &activity-alias& Activity组件别名的声明标签,简单来说就是Activity的快捷方式,属性android:targetActivity表示的就是其相关的Activity名,当然必须是前面已经声明过的Activity。除此之外,其他比较常见的属性有:Activity别名名称android:name,别名开关android:enabled,权限控制android:permission等。另外,我们还需要注意的是,Activity别名也是一个独立的Activity,可以拥有自己的&intent-filter&和&meta-data&元素,其语法范例如下。 &activity-alias android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:targetActivity="string" & ... ... &/activity-alias& &intent-filter&与&action&、&category&、&data& &intent-filter&用于Intent消息过滤器的声明,在前面的2.1.3.2节中我们已经对Android应用框架中的Intent消息作过比较详细的介绍,我们了解到Intent消息对于Android应用系统来说,是非常重要的“粘合剂”,&intent-filter&元素可以放在&activity&、&activity-alias&、&service&和&receiver&元素标签中,来区分可用于处理消息的Activity控制器、Service服务和广播接收器Broadcast Receiver。另外,我们还知道Intent消息还包含有名称、动作、数据、类别等几个重要属性。这点与该标签的写法也有一定的关系,比如&intent-filter&中必须包含有&action&元素,即用于描述具体消息的名称;&category&标签则用于表示能处理消息组件的类别,即该Action所符合的类别;而&data&元素则用于描述消息需要处理的数据格式,我们甚至还可以使用正则表达式来限定数据来源。当然,这些元素和标签的具体用法我们还需要慢慢学习,下面是标准&intent-filter&元素标签的语法范例。 &intent-filter android:icon="drawable resource" android:label="string resource" android:priority="integer" & &action android:name="string" /& &category android:name="string" /& &data android:host="string" android:mimeType="string" android:path="string" android:pathPattern="string" android:pathPrefix="string" android:port="string" android:scheme="string" /& &/intent-filter& &meta-data& 用于存储预定义数据,和&intent-filter&类似,&meta-data&也可以放在&activity&、&activity-alias&、&service&和&receiver&这四个元素标签中。Meta数据一般会以键值对的形式出现,个数没有限制,而这些数据都将被放到一个Bundle对象中,程序中我们则可以使用ActivityInfo、ServiceInfo甚至ApplicationInfo对象的metaData属性中读取。假设我们在一个Activity中定义了一个&meta-data&元素,相关示例用法如下。 &activity...& &meta-data android:name="testData" android:value="Test Meta Data"&&/meta-data& &/activity& ActivityInfo info = this.getPackageManager() .getActivityInfo(getComponentName(), PackageManager.GET_META_DATA); String testData = info.metaData.getString("testData"); System.out.println("testData:" + testData); &service& Service服务组件的声明标签,用于定义与描述一个具体的Android服务,主要属性有:Service服务类名android:name,服务图标android:icon,服务描述android:label以及服务开关android:enabled等。关于Service服务组件的概念和用法请参考2.1.4.2节的内容,以下是&service&标签的语法范例。 &service android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:process="string" & ... ... &/service& &receiver& Boardcast Receiver广播接收器组件的声明标签,用于定义与描述一个具体的Android广播接收器,其主要属性和&service&标签有些类似:Boardcast Receiver接收器类名android:name,接收器图标android:icon,接收器描述android:label以及接收器开关android:enabled等。关于Boardcast Receiver广播接收器组件的概念和用法请参考2.1.4.3节的内容,以下是&receiver&标签的语法范例。 &receiver android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:process="string" & ... ... &/receiver& &provider&与&grant-uri-permission& 除Activity、Service和Boardcast Receiver之外的另一个“四大组件”,也就是Content Provider内容提供者的声明标签。关于内容提供者组件的概念和用法请参考2.1.4.4节的内容,不再赘述。&provider&标签除了和其他组件相同的android:name、android:icon和android:label等基础属性之外,还提供了用于支持其功能的特殊属性,如:内容提供者标识名称android:authorities,对指定URI授予权限标识android:grantUriPermission以及具体的读、写权限,即android:readPermission和android:writePermission等。当然,这些属性的具体用法我们还需要慢慢学习,以下是&provider&标签的语法范例。 &provider android:authorities="list" android:enabled=["true" | "false"] android:exported=["true" | "false"] android:grantUriPermissions=["true" | "false"] android:icon="drawable resource" android:initOrder="integer" android:label="string resource" android:multiprocess=["true" | "false"] android:name="string" android:permission="string" android:process="string" android:readPermission="string" android:syncable=["true" | "false"] android:writePermission="string" & ... ... &/provider&
您可能感兴趣的文章:
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910用心创造滤镜
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(5741)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_084069',
blogTitle:'8.1 修改AndroidManifest.xml文件',
blogAbstract:'
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 androidmanifest乱码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信