转自:
http://galin.blog.sohu.com/170489657.html
AndroidManifest.xml的Service元素
<service android:name=".RemoteService" android:process=":remote">
<intent-filter>
<action android:name="com.demo.IMyService" />
</intent-filter>
</service>
这里的android:process=":remote",一开始我没有添加的,在同一个程序里使用IPC,即同一个程序作为客户端/服务器端,结果运行mRemoteService = IMyService.Stub.asInterface(service);时提示空指针异常。观察了人家的在不同程序里进行IPC的代码,也是没有这个android:process=":remote"的。后来在官方文档http://androidappdocs.appspot.com/guide/topics/manifest/service-element.html里了解到(留意第二段文字):
android:process
The name of the process where the service is to run. Normally, all components of an application run in the default process created for the application. It has the same name as the application package. The <application> element's process attribute can set a different default for all components. But component can override the default with its own process attribute, allowing you to spread your application across multiple processes.
If the name assigned to this attribute begins with a colon (':'), a new process, private to the application, is created when it's needed and the service runs in that process. If the process name begins with a lowercase character, the service will run in a global process of that name, provided that it has permission to do so. This allows components in different applications to share a process, reducing resource usage.
也就是说android:process=":remote",代表在应用程序里,当需要该service时,会自动创建新的进程。而如果是android:process="remote",没有“:”分号的,则创建全局进程,不同的应用程序共享该进程。
转自:
http://blog.csdn.net/fireofstar/article/details/7583047
分享到:
相关推荐
AndroidManifest.xml文件是Android应用程序的全局配置文件,它是Android应用程序中最重要的配置文件之一。该文件用于描述应用程序的基本信息、组件信息、权限信息、IntentFILTER信息等。理解AndroidManifest.xml文件...
在使用AndroidManifest.xml文件时,我们需要注意一些安全敏感项,会需要请求系统许可权限,这里可以使用android:permission来制定相关的许可,每个程序的service、activity、content provider、receiver都需要在...
AndroidManifest.xml是每个Android应用的核心配置文件,它定义了应用程序的基本属性、组件以及它们如何相互交互。理解并熟练运用这个文件对于任何Android开发者来说都是至关重要的。 首先,AndroidManifest.xml文件...
配置AndroidManifest.xml 使用百度SDK时,应用的AndroidManifest.xml主要需要注意以下三项: 4.1、权限 不同的功能需要申请不同的权限,因此在实际使用时,最好参考百度的SDK文档。 其次,在Android 6.0以后引入...
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close();...
android:resource="@xml/accessibility_service_config" /> </service> ``` 接下来,我们需要在 res/xml 目录下创建 accessibility_service_config.xml 文件,定义服务的行为: ```xml <accessibility-service ...
在你的 AndroidManifest.xml 添加如下代码: android:name="com.lody.virtual.permission.VIRTUAL_BROADCAST" android:protectionLevel="signature" /> android:name=...
AndroidManifest.xml是每一个Android应用项目中的必备文件,它定义了应用的组件(如Activity、Service、BroadcastReceiver和ContentProvider)、权限、硬件需求等关键信息,对应用的正常运行至关重要。 ### 关于...
但请确保Service和Activity在同一应用中,或在AndroidManifest.xml中为Service添加`android:permission="android.permission.START_ACTIVITIES_FROM_SERVICE"`权限。 5. 使用工具: Android Studio提供了强大的...
3. 在AndroidManifest.xml中设置Service的`android:process`属性以指定不同的进程。 4. 客户端通过`bindService()`方法与Remote Service建立连接,并获取到AIDL接口的代理对象,从而可以调用远程服务的方法。 广播...
在Android中,可以通过在`AndroidManifest.xml`文件中设置`service`标签的`android:process`属性来实现这一目标。具体来说: - 如果`android:process`属性以`.`开头,该服务将在一个全局的独立进程中运行。 - 如果...
在`AndroidManifest.xml`文件中,需要进行一些必要的权限声明和服务声明。添加以下代码: ```xml <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android....
在Android平台上,对电话状态的监听和拦截是一个需要特别权限和精确实现的敏感操作,这涉及到Android的权限管理、广播接收器(BroadcastReceiver)、事件监听机制以及电话状态的处理。以下知识点将详细介绍如何实现这...
在AndroidManifest.xml文件中,我们可以通过设置`android:process`属性来控制组件运行的进程。当这个属性的值未设置或者为空时,组件将运行在应用的默认进程中。如果设置了`android:process`,则组件将在指定的进程...
android:process=":remote" /> ``` 然后,创建一个LocationClient对象,设置监听器,并启动服务: ```java LocationClient locationClient = new LocationClient(this); locationClient.registerLocationListener...
标题“APS打包需要配置的地方1”提到的是在打包Android应用程序时,为了实现特定功能(例如推送服务)需要在`AndroidManifest.xml`中添加的一些关键权限和组件设置。以下是对描述和标签中的知识点的详细说明: 1. *...
在AndroidManifest.xml中,我们可以通过在Activity、Service等组件标签上添加`android:process`属性来创建一个新的进程。这样,即使该组件在一个进程中遇到未捕获异常导致崩溃,也不会影响到其他运行在不同进程中的...
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> ``` 2. **注册广播接收器**: 创建一个`BroadcastReceiver`,用于监听来电事件。在`onReceive()`方法中处理来电。注册广播接收...
在Android开发中,AIDL(Android Interface Definition Language)是一种用于实现进程间通信(IPC, Inter-Process Communication)的工具。AIDL允许你在Android应用的不同进程之间交换数据和服务。本示例"安卓...
3. 配置Service:在AndroidManifest.xml中注册Service,并设置其运行在独立的进程中,例如: ```xml <service android:name=".AidlService" android:process=":remote"> </service> ``` `android:process=":...