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

做电影网站考什么产品软文怎么写

做电影网站考什么,产品软文怎么写,建立网站的教学书籍,湖南品牌网站建设Apex的由来,我们都知道普通的apk我们可以通过应用商店playstore等进行更新,apex的引入是google希望也能通过playstore更新bin文件.so etc配置文件等类型文件. 这些文件的安装实际通过apexd来进行,现在我们来解析一下apexd, apexd的启动分为两个阶段,bootstrap和普通apexd启…

Apex的由来,我们都知道普通的apk我们可以通过应用商店playstore等进行更新,apex的引入是google希望也能通过playstore更新bin文件.so etc配置文件等类型文件. 这些文件的安装实际通过apexd来进行,现在我们来解析一下apexd, apexd的启动分为两个阶段,bootstrap和普通apexd启动,下面分析apexd bootstrap

1. rc文件启动
/system/core/rootdir/init.rc#80

 本阶段启动三个bootstrap apex,分别为com.android.i18n,com.android.runtime com.android.tzdata,在bootstrap 阶段主要就是提供 critical shared libraries


77     # Run apexd-bootstrap so that APEXes that provide critical libraries
78     # become available. Note that this is executed as exec_start to ensure that
79     # the libraries are available to the processes started after this statement.
80     exec_start apexd-bootstrap    
2. main函数
/system/apex/apexd/apexd_main.cpp#118
int main(int /*argc*/, char** argv) {
...
118    android::apex::SetConfig(android::apex::kDefaultConfig); → 全局config
...
151    if (has_subcommand) {
152      return HandleSubcommand(argv);    →  这里走 apexd --bootstrap
153    }

全局config 就是这些常量:

61  static const ApexdConfig kDefaultConfig = {
62      kApexStatusSysprop,       →    kApexStatusSysprop = "apexd.status" apex的状态
63      kApexPackageBuiltinDirs,   →  所有apex文件所在的目录data、product、system、system_ext、vendor
64      kActiveApexPackagesDataDir,   →  kActiveApexPackagesDataDir = "/data/apex/active"
65      kApexDecompressedDir,         →    kApexDecompressedDir = "/data/apex/decompressed";
66      kOtaReservedDir,             →        kOtaReservedDir = "/data/apex/ota_reserved";
67      kApexHashTreeDir,           →   kApexHashTreeDir = "/data/apex/hashtree";
68      kStagedSessionsDir,        →   StagedSessionsDir = "/data/app-staging"
69      kMetadataSepolicyStagedDir,  →  kMetadataSepolicyStagedDir = "/metadata/sepolicy/staged";
70      kVmPayloadMetadataPartitionProp,  →  kVmPayloadMetadataPartitionProp = "apexd.payload_metadata.path"
71      "u:object_r:staging_data_file",  → staging_data_file的 file contexts
72  };
3. OnBootstrap()
 
/system/apex/apexd/apexd_main.cpp#38
36  int HandleSubcommand(char** argv) {
37    if (strcmp("--bootstrap", argv[1]) == 0) {
38      SetDefaultTag("apexd-bootstrap");
39      LOG(INFO) << "Bootstrap subcommand detected";
40      return android::apex::OnBootstrap();
41    }/system/apex/apexd/apexd.cpp#2566
2566  int OnBootstrap() {
2567    ATRACE_NAME("OnBootstrap");
2568    auto time_started = boot_clock::now();
2569  
2570    ApexFileRepository& instance = ApexFileRepository::GetInstance(); → 创建个实例 啥也没做
2571    Result<void> status =
2572        instance.AddPreInstalledApex(gConfig->apex_built_in_dirs);  →  3.1 scan kApexPackageBuiltinDirs下的所有apex, 详见3.1.1
2573    if (!status.ok()) {
2574      LOG(ERROR) << "Failed to collect APEX keys : " << status.error();
2575      return 1;
2576    }
2577  
2578    const auto& pre_installed_apexes = instance.GetPreInstalledApexFiles(); → 从全局变量中得到 pre_installed_store_
2579    int loop_device_cnt = pre_installed_apexes.size();
2580    // Find all bootstrap apexes
2581    std::vector<ApexFileRef> bootstrap_apexes;
2582    for (const auto& apex : pre_installed_apexes) {      →  遍历 所有apexfile
2583      if (IsBootstrapApex(apex.get())) {      →    判断是否是bootstrap apex,有三个com.android.i18n com.android.runtime com.android.tzdata
2584        LOG(INFO) << "Found bootstrap APEX " << apex.get().GetPath();
2585        bootstrap_apexes.push_back(apex);
2586        loop_device_cnt++;
2587      }
2588      if (apex.get().GetManifest().providesharedapexlibs()) {
2589        LOG(INFO) << "Found sharedlibs APEX " << apex.get().GetPath();
2590        // Sharedlis APEX might be mounted 2 times:
2591        //   * Pre-installed sharedlibs APEX will be mounted in OnStart
2592        //   * Updated sharedlibs APEX (if it exists) will be mounted in OnStart
2593        //
2594        // We already counted a loop device for one of these 2 mounts, need to add
2595        // 1 more.
2596        loop_device_cnt++;
2597      }
259
http://www.dinnco.com/news/27469.html

相关文章:

  • 英文网站建站公司磁力棒
  • 给公司做网站需要什么信息济源网络推广
  • 龙岗网站价格今日国际新闻最新消息大事
  • wordpress外网端口西安seo站内优化
  • 武汉网站优化价格seo关键词排名优化制作
  • 哪些网站用python做服务框架百度seo排名软件
  • 注册的空间网站吗优化关键词排名的工具
  • wordpress 交流站长工具seo综合查询工具
  • 网站如何做线上和线下推广最近新闻今日头条
  • wordpress tags插件电脑系统优化软件
  • 秦皇岛网站建公司百度首页
  • 网站服务器管理 硬件网站排行查询
  • 上海网站建设网页制作网站品牌推广策略
  • 网络推广服务营销北京seo全网营销
  • 廊坊seo软件昆明seo网站管理
  • 想注册一个做网站的公司网站服务器速度对seo有什么影响
  • 免费做h5的网站网站排名优化软件联系方式
  • hbuilder 做网站国际新闻今日头条
  • 郑州网站建设电话网站建设哪家好公司
  • 阿里云官网入口seo外贸网站制作
  • 网站建设维护 天博网络下载百度语音导航地图
  • b2c电商网站开发百度自动搜索关键词软件
  • 动漫设计与制作学费北京优化互联网公司
  • 建设网站的意义收录优美图片崩了
  • 网站目录 index营销型网站建设哪家好
  • 长沙开福区专业制作网站汕头seo不错
  • 游戏平台网站制作成都关键词优化报价
  • 专门做网站开发的公司百度信息流推广教程
  • 大石桥做网站软文编辑器
  • 自己做电影网站有没有钱赚seo怎么弄