• 利用Android多进程机制来分割组件


    android对于内存有一定的限制,很多手机上对内存的限制是完全不同的。我们的应用程序其实就是一个进程,这个进程是完全独立的,这个进程分配的内存是一定的,所以我们经常会遇到OOM的问题。但,你可能不知道的是,你可以指定应用程序的一些组件运行在不同的进程中,而不是那个被用于启动应用程序的。

    我们需要的仅仅是这么一个属性:

    android:process

    该进程属性可用于activities、services、content providers和broadcast receivers 和指定的进程中应该执行的特定组件。

    在这个例子中,我指定MusicService必须执行在一个单独的“music”的进程:

    <manifest ...>
      <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.Main" >
    
        <activity
          android:name=".MusicActivity"
          />
        <service
          android:name=".MusicService"
          android:process=":music"
        />
      </application>
    </manifest>

    这样我们就可以把不同的组件放入不同的进程,它们自身的内存也会变大。但这就出现了如何进行多进程间通信的问题。幸运的是Intent可以跨进程“旅行”,Handlers和Messengers也可以。。你也可以依靠AIDL(Android接口定义语言)和Binder。

    总之,万事无绝对,这种方式适合的是一些分层比较清晰和功能比较独立的模块,如果你想要更详细的了解这个问题可以参考这篇文章

    参考自:

    https://github.com/bboyfeiyu/android-tech-frontier/tree/master/androidweekly/%E6%AC%A2%E8%BF%8E%E6%9D%A5%E5%88%B0Android%E5%A4%9A%E8%BF%9B%E7%A8%8B%E6%97%B6%E4%BB%A3

  • 相关阅读:
    级联
    自定义Exception
    正则表达式
    配置baseDao(hibernateTemplate)
    BigDecimal
    递归调用
    1,怎么获得数据库表结构。
    常用工具
    《ASP.NET企业级开发案例精解》源代码
    【转载】在jQuery EasyUI中实现对DataGrid进行编辑
  • 原文地址:https://www.cnblogs.com/tianzhijiexian/p/4391941.html
Copyright © 2020-2023  润新知