日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android app启动过程(转)

發布時間:2025/3/17 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android app启动过程(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Native進程的運行過程

一般程序的啟動步驟,可以用下圖描述。程序由內核加載分析,使用linker鏈接需要的共享庫,然后從c運行庫的入口開始執行。

?

?

?

通常,native進程是由shell或者init啟動,啟動的過程如下:

  • Shell接收到命令,啟動一個程序,此時shell首先會fork一個新的進程
  • 新fork的進程,通過execve系統調用,陷入到內核中,內核檢查和加載需要執行的二進制映像文件,檢驗其合法性及權限。通常用戶態進程要啟動一個新的程序(如shell),fork后,execve要緊跟著執行,這樣會有更好的效率(由于使用COW技術,這樣可以避免頁表復制,而execve后,之前進程中的所有內容都是無用的,若execve緊跟fork后,可以避免COW引起的拷貝);
  • 通常二進制文件都會要依賴一些系統動態庫,此時kernel會啟動加載器/system/bin/linker,執行linker的__linker_init()
  • Linker的linker_init(),會分析二進制的elf文件,加載依賴的動態庫文件,然后轉入二進制映像的入口函數__start中執行
  • __start會調用C庫的初始化函數__libc_init()
  • __libc_init()會調用映像的main函數,這個main函數也就是用戶app的入口函數
  • main()?函數執行完畢后,通過exit()退出進程執行

?

需要注意的是,android bionic提供的加載器是/system/bin/linker,而普通linux系統用的glibc是/lib/ld-linux-xx.so.2。這也是為何其他linux平臺同指令架構的二進制文件,不能在android上運行的原因之一:啟動用戶進程的加載器這個程序運行的第一步就出錯了。

?

Java進程的運行過程

Java進程的啟動比較特殊,Java進程是zygote啟動的,zygote在folk進程之后,并沒有執行execve指令,因此是共享了zygote的代碼段和數據段。其它的java進程,可以看做都是zygote的克隆,克隆之后的進程,各自根再據自己的需求(java代碼),解釋java語言。

也就是說:Android的所有進程,從native角度看都是zygote。 其對應的程序都是 /system/bin/app_process,虛擬機是運行在其中的。

?

那為何java進程又如此的不同呢? 實際上,從native的角度看,不同的各種java程序,可以如此理解:只是/system/bin/app_process 這個程序,因為不同的輸入(Java dex字節碼)而引起的。

上圖中,user APK實際上市zygote的一個克隆(啟動->進入main等之前的流程沒有畫出,?app進程沒有這個步驟,是從zygote進程中克隆過來),差別主要在dvm虛擬機執行的java代碼的不同導致的表現的行為差異巨大。

?

Java進程沒有執行exec調用,這樣有一個很大的好處:使用linux的COW(copy on Write)技術,就可以在多個java進程間,共享內存資源——主要是java的核心庫。

?

Java程序也可以使用native庫,此時的native庫需要通過dlopen來打開(即java中,使用System.loadLibrary()方法加載so庫,虛擬機對應會調用的C庫方法),dlopen加載so庫的過程中,依舊會通過linker分析處理so庫的elf信息,加載其它依賴的動態庫。

?

(注:zygote實際上是/system/bin/app_process,zygote只是app_process的別名)

http://www.cnblogs.com/lanrenxinxin/p/4943632.html

總結

以上是生活随笔為你收集整理的android app启动过程(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰在线中文字幕 | 诱惑の诱惑筱田优在线播放 | 一区二区不卡在线观看 | 欧美三级韩国三级日本三斤 | 天天色天天干天天色 | 中文av一区二区三区 | 精品国产一区二区三区久久 | 欧美色图11p | 91免费网站在线观看 | 精品一区二区三区精华液 | 欧美午夜剧场 | 欧美伊人 | 欧美一区二区性久久久 | 九九热精品视频在线观看 | 欧美激情久久久久久 | 男人久久天堂 | 国产青青草视频 | 激情av网| 无码一区二区精品 | 伊人草草 | 精品九一 | 国产视频一| 成人亚洲精品久久久久软件 | 日韩成人看片 | 国产精品久久久久久久午夜 | 亚洲一区二区三区免费视频 | 男人和女人日b视频 | 亚洲精品av中文字幕在线在线 | 91精品福利在线 | 不良视频在线观看 | 综合视频一区二区 | 草草草在线视频 | 亚洲乱仑 | 国产熟女一区二区三区四区 | 福利电影一区 | 久久嫩草精品久久久久 | 亚洲欧美日韩综合一区二区 | 精品国产乱码久久久久久108 | 麻豆av一区二区三区在线观看 | 理想之城连续剧40集免费播放 | 阿v视频在线免费观看 | 在线视频中文 | 爱情岛论坛自拍 | 日本三级大全 | 日韩精品五区 | 少妇久久久久久久久久 | 国产一区精品在线 | 国产女人精品视频 | 毛片毛片毛片 | 九九九九国产 | 免费人妻精品一区二区三区 | 一级做a爱片久久毛片 | 亚洲欧美伊人 | 91看片就是不一样 | 久久黄色影院 | 美女的隐私免费看 | 亚洲啊啊啊啊啊 | 国产做爰视频免费播放 | 亚洲色图图片 | 国产精品视频一区在线观看 | 熟女高潮一区二区三区 | 黑人玩弄人妻一区二区三区四 | 性色av网 | 日本三级中国三级99人妇网站 | 亚洲小说区图片区都市 | 一区二区三区免费播放 | 今天最新中文字幕mv高清 | 激情亚洲色图 | 日韩视频在线免费播放 | 成人午夜久久 | 波多野结衣视频一区二区 | 久久久久99精品国产片 | 日韩精品在线电影 | 色啊色| 操网| 国产日韩欧美中文字幕 | 日本孕妇孕交 | 黑人黄色录像 | 免费无码一区二区三区 | 久久久一区二区三区四区 | 后入内射欧美99二区视频 | 国产欧美视频一区二区 | avtt久久| 波多野结衣在线免费观看视频 | 久久综合色网 | 精品国产大片大片大片 | 俺也去五月婷婷 | 日本久久不卡 | 国产黄大片 | 国产精品jizz视频 | 国产麻豆一区 | 日本黄在线观看 | 深爱综合网 | 国产精品自拍一区 | 肥臀av | 国产三级av在线 | 日本黄色不卡视频 | 香蕉久久视频 | 少妇的性事hd |