zoukankan      html  css  js  c++  java
  • 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。如果这些应用程序再被设置成运行在一个相同的进程,它们便可以彼此访问对方的数据。  

  • 相关阅读:
    改变form里面input,textarea.select等的默认样式
    serialize() 方法
    纯css实现互动清单
    less学习笔记
    竖直手风琴导航菜单栏
    植树节快到了-那就种棵决策树吧
    简单写个logictic回归
    爬取纽约时报特定关键词新闻并计数
    (数学建模)非线性规划
    (CV学习笔记)看图说话(Image Captioning)-2
  • 原文地址:https://www.cnblogs.com/sudawei/p/3527058.html
Copyright © 2011-2022 走看看