成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android應用程序進程啟動過程的源代碼分析(二)

移動開發 Android
傳入一個第一個參數為"android.app.ActivityThread",這就是進程初始化時要加載的Java類了,把這個類加載到進程之后,就會把它里面的靜態成員函數main作為進程的入口點。

上文我們調用了Process.start函數開始為應用程序創建新的進程。

注意,它傳入一個***個參數為"android.app.ActivityThread",這就是進程初始化時要加載的Java類了,把這個類加載到進程之后,就會把它里面的靜態成員函數main作為進程的入口點,后面我們會看到。

Step 2. Process.start

這個函數定義在frameworks/base/core/java/android/os/Process.java文件中:

  1. [java] view plaincopypublic class Process { 
  2.   ...... 
  3.   public static final int start(final String processClass, 
  4.   final String niceName, 
  5.   int uid, int gid, int[] gids, 
  6.   int debugFlags, 
  7.   String[] zygoteArgs) 
  8.   { 
  9.   if (supportsProcesses()) { 
  10.   try { 
  11.   return startViaZygote(processClass, niceName, uid, gid, gids, 
  12.   debugFlags, zygoteArgs); 
  13.   } catch (ZygoteStartFailedEx ex) { 
  14.   ...... 
  15.   } 
  16.   } else { 
  17.   ...... 
  18.   return 0
  19.   } 
  20.   } 
  21.   ...... 
  22.   } 

這里的supportsProcesses函數返回值為true,它是一個Native函數,實現在frameworks/base/core/jni/android_util_Process.cpp文件中:

  1. [cpp] view plaincopyjboolean android_os_Process_supportsProcesses(JNIEnv* 
  2. env, jobject clazz) 
  3.   { 
  4.   return ProcessState::self()->supportsProcesses(); 
  5.   } 
  6.   ProcessState::supportsProcesses函數定義在frameworks/base/libs/binder/ProcessState.cpp文件中: 
  7.   [cpp] view plaincopybool ProcessState::supportsProcesses() const 
  8.   { 
  9.   return mDriverFD >= 0
  10.   } 

這里的mDriverFD是設備文件/dev/binder的打開描述符,如果成功打開了這個設備文件,那么它的值就會大于等于0,因此,它的返回值為true。

回到Process.start函數中,它調用startViaZygote函數進一步操作。

責任編輯:閆佳明 來源: bbs.9ria
相關推薦

2014-06-19 14:25:04

Android應用程序進程啟動

2014-06-20 11:05:56

Android應用程序進程啟動

2014-06-20 11:09:35

Android應用程序進程啟動

2014-06-20 11:24:34

Android應用程序進程啟動

2014-06-19 14:54:11

Android應用程序進程啟動

2014-06-19 14:59:40

Android應用程序進程啟動

2014-06-20 11:20:37

Android應用程序進程啟動

2012-02-20 14:47:08

JavaPlay

2014-05-22 15:00:16

Android消息處理機制Looper

2011-08-17 16:16:29

iPhone應用程序啟動過程

2011-07-28 10:34:38

Cocoa 程序 啟動

2014-06-23 10:31:09

Android啟動過程

2011-06-28 13:27:13

ARM Linux

2014-07-31 10:06:01

谷歌Google應用

2012-08-16 09:07:57

Erlang

2018-03-13 13:00:03

Linux運維啟動分析

2024-09-11 09:25:03

Tomcat組件PREP

2022-08-29 17:34:05

鴻蒙操作系統

2009-08-14 17:57:43

ASP.NET MVC

2010-12-13 11:40:17

Android應用程序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国户精品久久久久久久久久久不卡 | 九色在线视频 | 成人av高清| 国产一区欧美 | 操人网 | 欧美精品一区二区三区在线 | 黄网站色大毛片 | 国产福利资源在线 | 7777奇米影视 | 一级片视频免费 | 国产亚洲一区二区三区在线 | 欧美成视频| 精品一区二区三区在线视频 | 亚洲成在线观看 | 亚洲色图综合网 | 国产精品一区二区三区四区 | 成人欧美一区二区三区在线观看 | 亚洲天堂二区 | 人人操日日干 | 欧美日韩一区在线观看 | 欧美一级在线观看 | 午夜久久久久久久久久一区二区 | 97操操| gav成人免费播放视频 | 国产中文字幕在线 | 91 在线| 亚洲欧美视频一区 | 91视视频在线观看入口直接观看 | 亚洲男人网 | 成人h电影在线观看 | 中文字幕高清av | 日韩欧美中文字幕在线视频 | 亚洲视频二区 | 人成精品 | 成人做爰www免费看视频网站 | 在线免费看黄 | 波多野结衣精品在线 | 国产精品一区在线 | 日韩精品一区二区三区在线观看 | 97超碰成人 | 国产黄色小视频 |