当前位置: 首页 > news >正文

牡丹江市网站建设_网站建设公司_跨域_seo优化

大连企业建站,为您打造高端品牌网站,有没有国外的做美食的视频网站,如何用易语言做网站2019独角兽企业重金招聘Python工程师标准 apk#xff0c;task#xff0c;进程区别 apk一般占一个dalvik,一个进程#xff0c;一个task。通过设置也可以多个进程,占多个task。 task是一个activity的栈#xff0c;其中可能含有来自… 2019独角兽企业重金招聘Python工程师标准 apktask进程区别                   apk一般占一个dalvik,一个进程一个task。通过设置也可以多个进程,占多个task。 task是一个activity的栈其中可能含有来自多个App的activity 默认情况下同一个应用程序中的所有组件运行在同一个进程中而且绝大多数的应用程序也都是这样的。但是如果我们想要控制让某个特定的组件属于某个进程我们可以在manifest文件中进行配置。 在 每种组件元素activity、service、receiver、provider的manifest条目中都支持一个 “android:process”的属性通过这个属性我们可以指定某个组件运行的进程。我们可以通过设置这个属性让每个组件运行在它自己的进程 中也可以只让某些组件共享一个进程。我们要可以通过设置“android:process”属性让不同应用程序中的组件运行在相同的进程中这些应用 程序共享相同的Linux用户ID拥有相同的证书。 application元素也有一个“android:process”属性可以设置一个应用于全部组件的默认值。     当可用内存数量低而一些与用户即时交互的进程又需要内存时Android随时可能会终止某个进程。运行在被终止的进程中的组件会因此被销毁但是当再次需要这些组件工作时就会再启动一个进程。     在决定要终止哪个进程时Android系统会权衡它们对于用户的重要性。例如相较于运行可见activities的进程终止一个运行不可见activities的进程会更加合理。是否终止一个进程依赖于运行在这个进程中的组件的状态。 如果不能将两个activity放入同一个application中的话可以通过在各自的manifest中设置以下属性让这两个activity强制运行在同一个进程中从而可以充分利用进程内共享的资源减少内存占用  Java代码   1设置相同的User Id  manifest android:sharedUserIdaaa.bbb  2被调用的activity设置以下属性  activity android:multiprocesstrue  或者  activity android:processcom.cienet.test  对于3D OpenGL程序修改以上属性后被调用的activity的内存占用会明显减少比如30MB - 2MB。 可以做如下测试如何共享一个进程  Java代码   加入android:sharedUserIdaaa.bbb没有  android:processcom.cienet.test  07-12 15:42:34.781: ERROR/Dean(7615): Binder.getCallingPid()7615  07-12 15:42:34.785: ERROR/Dean(7615): runningappprocessinfo.pid:7615runningappprocessinfo.processNamecom.cienet.testa  07-12 15:42:34.785: ERROR/Dean(7615): pkgname:7615:com.cienet.testa      07-12 15:42:24.722: ERROR/Dean(7602): Binder.getCallingPid()7602  07-12 15:42:24.726: ERROR/Dean(7602): runningappprocessinfo.pid:7602runningappprocessinfo.processNamecom.cienet.testb  07-12 15:42:24.726: ERROR/Dean(7602): pkgname:7602:com.cienet.testb    加入android:processcom.cienet.test到B    07-12 15:46:41.933: ERROR/Dean(7738): Binder.getCallingPid()7738  07-12 15:46:41.937: ERROR/Dean(7738): runningappprocessinfo.pid:7738runningappprocessinfo.processNamecom.cienet.test  07-12 15:46:41.937: ERROR/Dean(7738): pkgname:7738:com.cienet.testb    07-12 15:47:13.246: ERROR/Dean(7761): Binder.getCallingPid()7761  07-12 15:47:13.246: ERROR/Dean(7761): runningappprocessinfo.pid:7761runningappprocessinfo.processNamecom.cienet.testa  07-12 15:47:13.250: ERROR/Dean(7761): pkgname:7761:com.cienet.testa    同时加入android:processcom.cienet.test到A    07-12 15:50:24.988: ERROR/Dean(7878): getApplicationInfo:publicSourceDir/data/app/com.cienet.testa-1.apk  07-12 15:50:24.988: ERROR/Dean(7878): getApplicationInfo:descriptionRes0  07-12 15:50:24.988: ERROR/Dean(7878): Binder.getCallingPid()7878  07-12 15:50:24.992: ERROR/Dean(7878): runningappprocessinfo.pid:7878runningappprocessinfo.processNamecom.cienet.test  07-12 15:50:24.992: ERROR/Dean(7878): pkgname:7878:com.cienet.testa      07-12 15:50:46.964: ERROR/Dean(7878): getApplicationInfo:publicSourceDir/data/app/com.cienet.testb-1.apk  07-12 15:50:46.964: ERROR/Dean(7878): getApplicationInfo:descriptionRes0  07-12 15:50:46.964: ERROR/Dean(7878): Binder.getCallingPid()7878  07-12 15:50:46.968: ERROR/Dean(7878): runningappprocessinfo.pid:7878runningappprocessinfo.processNamecom.cienet.test  07-12 15:50:46.972: ERROR/Dean(7878): pkgname:7878:com.cienet.testa      去掉android:sharedUserIdaaa.bbb  07-12 15:52:29.574: ERROR/Dean(7967): getApplicationInfo:publicSourceDir/data/app/com.cienet.testb-2.apk  07-12 15:52:29.578: ERROR/Dean(7967): getApplicationInfo:descriptionRes0  07-12 15:52:29.578: ERROR/Dean(7967): Binder.getCallingPid()7967  07-12 15:52:29.578: ERROR/Dean(7967): runningappprocessinfo.pid:7967runningappprocessinfo.processNamecom.cienet.test  07-12 15:52:29.578: ERROR/Dean(7967): pkgname:7967:com.cienet.testb      07-12 15:53:06.730: ERROR/Dean(7990): getApplicationInfo:publicSourceDir/data/app/com.cienet.testa-2.apk  07-12 15:53:06.730: ERROR/Dean(7990): getApplicationInfo:descriptionRes0  07-12 15:53:06.730: ERROR/Dean(7990): Binder.getCallingPid()7990  07-12 15:53:06.734: ERROR/Dean(7990): runningappprocessinfo.pid:7990runningappprocessinfo.processNamecom.cienet.test  07-12 15:53:06.734: ERROR/Dean(7990): pkgname:7990:com.cienet.testa  如上证明那个APK共享进程要两个条件1设置相同的User Id 2被调用的activity设置以下属性  Java代码   activity android:multiprocesstrue  或者  activity android:processcom.cienet.test     1. 同一Apk中的同一包中的多个Activity调用时进程状况验证 [1]创建Project     project name: FirstProject     package     : com.demo     默认Activity : MainActivity  [2]添加一个新的Activity     name: SecondActivity  [3]修改布局。在MainActivity布局中添加一个Button当点击此Button时启动SecondActivity。在SecondActivity的布局中放置一个Textview以证明SecondActivity已启动。  [4]运行程序查看此App进程情况     USERapp_36  PID8360  NAMEcom.demo  [5]点击按钮启动SecondActivity再次查看进程情况     USERapp_36  PID8360  NAMEcom.demo 结论进程列表没有变化两个Activity运行在同一进程中。 2. 同一Apk中的不同包的Activity调用时进程状况验证 [1]将SecondActivity挪到包com.demo.second中去相应修改AndroidManifest.xml中的name为com.demo.second.SecondActivity  [2]运行程序查看此时进程情况     USERapp_36  PID10593  NAMEcom.demo  [3]点击按钮启动SecondActivity查看此时进程情况     USERapp_36  PID10593  NAMEcom.demo  结论进程列表没有变化两个Activity运行在同一进程中。即进程name只受AndroidManifest.xml中manifset结点的package属性影响。 3. 同一Apk中Activity process属性修改后进程状况验证 [1]为SecondActivity添加process属性其值为:abc也可以随便是其他的:开头的字符串常见的名字是:remote activity android:namecom.demo.second.SecondActivity android:process:abc /activity [2]运行程序查看进程情况     USERapp_36  PID12137  NAMEcom.demo  [3]点击按钮启动SecondActivity查看进程情况     USERapp_36  PID12137  NAMEcom.demo     USERapp_36  PID12303  NAMEcom.demo:abc 结论进程表多了一项。两个Activity各自有一个进程SecondActivity的进程名称为 包名后缀。           4. 不同Apk中不同包名的Activity进程状况验证  [1]运行FirstProject    USERapp_36  PID12137  NAMEcom.demo [2]创建SecondProject    project name: SecondProject     package:com.demo2     默认Activity:MainActivity [3]运行SecondProject     USERapp_37  PID14191  NAMEcom.demo2  结论进程表多了一项。两个Activity各自有一个进程同时其进程用户id、包名也不同互不影响。   5. 不同Apk签名相同、包名相同的Activity进程状况验证  [1]修改SecondProject的包也为com.demo相应要修改AndroidManifest.xml内容。  [2]运行SecondProject查看进程情况     USERapp_36  PID14944  NAMEcom.demo  结论进程表只有一项但是实际上FirstProject此时已经被覆盖了系统中只存在SecondProject了因为模拟器调试时apk使用的签名key都是一样的系统看到key一样包名一样认为这个包就是FirstProject所以覆盖掉了。  可以通过DDMS复制/data/system/packages.xml查看一下内容: package namecom.demo codePath/data/app/com.demo.apk systemfalse ts1279955425000 version1 userId10036 这个文件里面package name都是唯一的同时可以看到用户名是通过userId来决定的。 6.不同Apk签名不相同包名相同的Activity进程状况验证 [1]在Eclipse的Package Explorer导航树中选中FirstProject点右键。  [2]Android tools--Export Signed Application Package按照向导创建一个用指定key签名的apk包。  [3]同样导出Second Project。  [4]切换窗口到模拟器按Home键--按Menu键--设置--应用程序--管理应用程序--SecondProject--卸载。这是为了用命令行安装做准备。  [5]启动一个命令行窗口执行adb install firstproject.apk会提示成功安装。  [6]执行adb install secondproject.apk提示安装失败。  结论 1 默认的Apk其安装时会分配新的UserId即此时FirstProject以及SecondProject的UserId可以认为是不同的。  2 包名不同则签名key是否相同无所谓两个apk都可以安装。【第4个实验】  3 包名相同时签名key相同则会覆盖【第5个实验】签名不同则第二个apk安装会失败。【第6个实验】   7.不同ApkShare User Id相同包名不同时进程情况分析 [1]修改firstproject、secondproject的AndroidManifest.xml的manifset结点增加属性 android:sharedUserIdcom.demouser   [2]修改secondproject的包为com.demo2不然其会覆盖firsetproject。  [3]运行firsetproject、secondproject查看进程列表     USERapp_35  PID19993  NAMEcom.demo2     USERapp_35  PID20045  NAMEcom.demo2  结论: 仍然存在两个进程。但是进程的用户名一样说明shareUserId确实有效了进程pid不相同。  再次导出/data/system/packages.xml查看其内容可以看到两个项目的UserId都是10035确实是一样的 package namecom.demo codePath/data/app/com.demo.apk systemfalse ts1279957484000 version1 sharedUserId10035 package namecom.demo2 codePath/data/app/com.demo2.apk systemfalse ts1279957473000 version1 sharedUserId10035   8.不同ApkShare User Id相同包名不同、指定Activity的process属性进程情况分析 [1]修改SecondProject的MainActivity的process属性指定绑定到进程名为com.demo的进程上 activity android:name.MainActivity android:labelstring/app_name android:processcom.demo [2]运行firstProject、SecondProject查看进程情况      USERapp_35  PID21387  NAMEcom.demo  结论两个Activity运行于同一个进程。   9.不同ApkShare User Id相同包名不同、签名key不同 经实验安装第二个apk时会提示INSTALL_FAILED_UPDATE_INCOMPATIBLE错误安装失败。  总结 UserId不同时      包名不同         未设定process属性时各自的Activity在各自的进程。即使process指定了包名也不会和另一个用户的同名包共享进程。      包名相同          签名相同覆盖旧的同包名apk。签名不同新的apk会安装失败。【签名key一般都是不同的】 UserId相同时      包名不同         未设定process属性时各自的Activity在各自的进程。process属性指定则可以共享进程。      包名相同          签名相同覆盖旧的同包名apk。签名不同新的apk会安装失败。【签名key一般都是不同的】 转载于:https://my.oschina.net/zhuzihasablog/blog/196218
http://www.ihoyoo.com/news/82565.html

相关文章:

  • 岳阳建设厅网站淘宝网站建设的主要工作
  • 上海网站设计成功柚v米科技360免费wifi电脑版怎么使用
  • 地方门户网站的前途网页qq官网
  • 自己做的网站怎么查网上购物软件
  • 凡科做网站的方法深圳网站定制设计
  • 做的网站缩小内容就全乱了网站建设咨询有客诚信网站建
  • 东莞市房管局官方网站企业网站建立网络虚拟社区时对于企业
  • 杭州品牌网站建设公司佛山市seo推广哪家好
  • 什么网站ppt做的最好看wordpress设置自动登陆
  • 个体工商户是否能够做网站河南那家做网站实力强
  • 网站程序问题设计建筑
  • 网站建设实训室长春seo搜索排名
  • it培训网站模板网站建设与管理基础及实训
  • 商务网站建设是什么响应式布局网站开发
  • 建筑网站开发青岛代理记账
  • 廊坊网站制作建设网站后台图片不显示
  • 龙岩做网站的游戏推广论坛
  • 怎样帮拍卖网站做策划三台网站建设哪家专业
  • 医药网站文案编辑是怎么做的乔拓云智能建站平台
  • 徐州集团网站建设流程wordpress 怎么传递参数 get参数
  • 保定网站建设多少钱哪家好wordpress自定义链接不能用
  • 南阳做网站公司电话c 网站建设步骤
  • 成都建设网站哪家好网站开发程序员是做什么的
  • 有做soho网站的吗平台企业
  • 成都网站建设蜀美网络高中文凭能学做网站吗
  • 建立网站原则加网络网站建设工作室
  • 米拓cms可以做企业网站吗嘉禾县网站建设推广公司
  • 苏州做网站最好公司没网站怎么做二维码扫描连接
  • 常州如何进行网站推广网站开发和企业级开发有什么区别
  • dedecms 关闭网站昆明网站建设手机版