• android:process为耗资源操作指定一个新进程


     当有一些耗费内存比较多的操作时,可以通过android:process指定一个新的进程。保证程序运行。

    例如:

    一个后台长期运行的service:

     1 <service
     2             android:name="com.example.service.xxxxxService"
     3             android:exported="false" 
     4             android:persistent="true"
     5             android:process=":remote1">
     6             <intent-filter>
     7                 <action android:name="com.example.service.xxxxxService" 
     8                     android:priority = "1000"/>
     9             </intent-filter>
    10         </service>

    android:process

    定义activity运行所在的进程名称。一般情况下,应用的所有组件都运行在为应用创建的默认的进程中,该默认进程的名称应用包名称一致。通过定义<application>元素的“process”属性可以为所有组件指定一个不同的默认进程。但是任意组件都可以重写默认进程,以便实现多进程操作。

    如果该属性指定名称以“:”开头,则一个新的专属于该应用的进程将会被创建。如果该进程名以小写字母开头,则为该activity提供权限以让其在一个全局的进程中运行。这样会允许多个应用的不同组件共用一个进程,以便节省资源。 

    Android是支持多进程的,每个进程的内存使用限制一般为24MB的内存,所以当完成一些很耗费内存的操作如处理高分辨率图片时,需要单独开一个进程来执行该操作(上面的配置可以用来实现该操作)。即便如此,开发者还是不要随意多开进程来耗费用户的资源。(内存限制,有16MB24MB 32MB,很老的机型的内存限制会是16MB,这个具体还要再搜索下资料。。)

    android:process可以针对一个组件(activity,broadcast等)。

    #########################################################

    设置该属性可以使得本应用程序与其它应用程序共享相同的进程,仅仅当这两个应用程序也共享一个拥有相同签名的UserId。
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        android:sharedUserId="android.uid.phone" >
    与其它应用程序共享的一个Linux User Id的名字。
    默认情况下,Android为每个应用程序分配一个唯一的User Id。然而,如果有多个应用程序都将该属性设置为一个相同的值,那么它们将共享相同的Id。如果这些应用程序再被设置成运行在一个相同的进程,它们便可以彼此访问对方的数据。  

  • 相关阅读:
    python------面向对象介绍
    python------模块定义、导入、优化 ------->re模块
    python------模块定义、导入、优化 ------->hashlib模块
    Java过滤器Filter使用详解
    EL表达式、 jstl标签
    jsp 自定义标签中的Function函数
    JSP 自定义标签
    javax.el.PropertyNotFoundException: Property 'name' not found on type java.lang.String
    JSP 中EL表达式用法详解
    JavaWEB
  • 原文地址:https://www.cnblogs.com/sudawei/p/3527058.html
Copyright © 2020-2023  润新知