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

wordpress videotheme网站推广优化外包公司哪家好

wordpress videotheme,网站推广优化外包公司哪家好,android开发平台,做旅游网站需要的背景前文Android——编译系统初始化设置中有解析编译的TARGET_BUILD_VARIANT的配置与基本区别, 其中的一些编译控制是对的但是Module的Android.mk中的LOCAL_MODULE_TAGS 控制并不全适用目前的android4.2,这里记录一下我对Module的控制过程。 首先还是这个放…

前文Android——编译系统初始化设置中有解析编译的TARGET_BUILD_VARIANT的配置与基本区别,

其中的一些编译控制是对的但是Module的Android.mk中的LOCAL_MODULE_TAGS 控制并不全适用目前的android4.2,这里记录一下我对Module的控制过程。

 

首先还是这个放在Android.mk中的变量,默认在/build/core/base_rules.mk 中:

 

1

2

3

4

LOCAL_MODULE_TAGS := $(sort $(LOCAL_MODULE_TAGS))

ifeq (,$(LOCAL_MODULE_TAGS))

  LOCAL_MODULE_TAGS := optional

endif

 

而且并不是 LOCAL_MODULE_TAGS :=optional 就会都安装进system.img !

 

LOCAL_MODULE_TAGS 在 android 4.2 能取的值有:

 

1

2

3

4

5

6

# Only the tags mentioned in this test are expected to be set by module

# makefiles. Anything else is either a typo or a source of unexpected

# behaviors.

ifneq ($(filter-out debug eng tests optional samples shell_ash shell_mksh,$(LOCAL_MODULE_TAGS)),)

$(warning unusual tags $(LOCAL_MODULE_TAGS) on $(LOCAL_MODULE) at $(LOCAL_PATH))

endif


debug eng tests optional samples shell_ash shell_mksh 这几个值,没有user ,这是跟之前的一个差别!

 

其中TARGET_BUILD_VARIANT 还是对应:

 

eng

默认类型,安装 LOCAL_MODULE_TAGS 的类型为/build/core/main.mk:

 

1

2

ifeq ($(TARGET_BUILD_VARIANT),eng)

tags_to_install := debug eng

 

安装 PRODUCT_PACKAGES 中定义的Module

 

user :

用于发行版,像之前描述的关闭log,shel,rootl,编译出odex Android——编译odex保护

LOCAL_MODULE_TAGS 的值不能为 user

安装哪些Module 只依赖与 PRODUCT_PACKAGES

 

userdebug :

用于调试,安装 LOCAL_MODULE_TAGS 的类型为/build/core/main.mk:

 

1

2

3

ifeq ($(user_variant),userdebug)

  # Pick up some extra useful tools

  tags_to_install += debug


安装 PRODUCT_PACKAGES 中定义的Module

 

symbols 目录 :

这里记录一种现象,不管 Module 是apk 还是 lib ,有的时候在单独 mmm 编译 的时候,

是可以安装到 /out 中的system对应位置的,最后能够打包进系统的system.img

 

但是 如果整体的 make -j* 编译系统,那么 对应的 apk .lib 就会生成在 /out 下的 symbols/system 对应的位置,

最后是不会打包进系统system.img 的!

 

这就是因为 Module 的LOCAL_MODULE_TAGS 和当前的编译的TARGET_BUILD_VARIANT 没有满足上面说到的规则,

Module 并不认定为需要 install 的!

可以按照上面的规则,修改Module的 LOCAL_MODULE_TAGS 或者 看下面的 在 PRODUCT_PACKAGES 中添加 Module !

 

这里只区分对Module的安装控制,可以看到在4.2 中 对Module的控制级别最高的是 PRODUCT_PACKAGES 这个变量!

 

二.PRODUCT_PACKAGES :

这个变量在很多.mk中都有赋值,比如在device中的 device.mk 中,而且都是 类似这样的:

 

1

2

3

4

5

6

7

# jscese add libusb and compat lib ,usb-modeswitch execute binary for 3G

PRODUCT_PACKAGES +=

    rild

    libusb

    libusb-compat

    usb_modeswitch

#end


都是 += 累加操作!

 

这就代表这些Module 无论如何都会被编译安装进系统。

简单记录下PRODUCT_PACKAGES 的作用过程

首先在main.mk中的

product_MODULES 以及 product_FILES

 

1

2

3

4

5

6

7

8

9

# The base list of modules to build for this product is specified

# by the appropriate product definition file, which was included

# by product_config.make.

product_MODULES := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES)

# Filter out the overridden packages before doing expansion

product_MODULES := $(filter-out $(foreach p, $(product_MODULES),

    $(PACKAGES.$(p).OVERRIDES)), $(product_MODULES))

$(call expand-required-modules,product_MODULES,$(product_MODULES))

product_FILES := $(call module-installed-files, $(product_MODULES))

 

modules_to_install

 

1

2

3

4

5

6

7

modules_to_install := $(sort

    $(ALL_DEFAULT_INSTALLED_MODULES)

    $(product_FILES)

    $(foreach tag,$(tags_to_install),$($(tag)_MODULES))

    $(call get-tagged-modules, shell_$(TARGET_SHELL))

    $(CUSTOM_MODULES)

  )


这个就是需要安装的一个变量了,有用到上面说得到的变量 tags_to_install 还有 product_FILES

 

modules_to_install 还会经过一些过滤处理,具体可看main.mk中

 

ALL_DEFAULT_INSTALLED_MODULES

 

1

2

3

4

5

6

7

8

# build/core/Makefile contains extra stuff that we don't want to pollute this

# top-level makefile with.  It expects that ALL_DEFAULT_INSTALLED_MODULES

# contains everything that's built during the current make, but it also further

# extends ALL_DEFAULT_INSTALLED_MODULES.

ALL_DEFAULT_INSTALLED_MODULES := $(modules_to_install)

include $(BUILD_SYSTEM)/Makefile

modules_to_install := $(sort $(ALL_DEFAULT_INSTALLED_MODULES))

ALL_DEFAULT_INSTALLED_MODULES :=


再加载进Android的 Makefile 文件,其中根据 ALL_DEFAULT_INSTALLED_MODULES 进行安装!这里暂不深入。

 

make 编译的时候的依赖如下:

droid:

 

1

2

3

4

# Building a full system-- the default is to build droidcore

droid: droidcore dist_files

...

.PHONY: droid

 

droidcore :

 

1

2

3

4

5

6

7

8

9

# Build files and then package it into the rom formats

.PHONY: droidcore

droidcore: files

    systemimage

    $(INSTALLED_BOOTIMAGE_TARGET)

    $(INSTALLED_RECOVERYIMAGE_TARGET)

    $(INSTALLED_USERDATAIMAGE_TARGET)

    $(INSTALLED_CACHEIMAGE_TARGET)

    $(INSTALLED_FILES_FILE)

 

files :

 

1

2

3

4

5

6

# All the droid stuff, in directories

.PHONY: files

files: prebuilt

        $(modules_to_install)

        $(modules_to_check)

        $(INSTALLED_ANDROID_INFO_TXT_TARGET)

 

可以看到 依赖到了 上面分析到的 modules_to_install

http://www.lbrq.cn/news/2666881.html

相关文章:

  • 做外贸在什么网站最好有没有免费的seo网站
  • 酒店网站制作苏州百度推广代理商
  • 中石化第四建设有限公司网站百度网址大全 官网首页
  • 网站开发可以自学吗seo优化包括
  • 做网站包括图片设计吗深圳谷歌推广公司
  • 学做ppt的网站有哪些内容广告制作公司
  • 济南网站优化收费标准苏州网站制作开发公司
  • 公众号引流推广吸粉方案seo快速排名网站优化
  • 网站创建需要多少钱营销模式有几种
  • 湛江做网站的公司百度搜索引擎的使用方法
  • 天津百度网站排名优化网站外链代发
  • 济南免费网站建设西安seo外包公司
  • 深圳有哪些网站开发公司专业的seo搜索引擎优化培训
  • 网站建设相关行业有哪些海外seo推广公司
  • 完备的常州网站优化搜索引擎的优化方法
  • 凡科网免费建站步骤及视频如何优化seo关键词
  • 福永做网站网络营销成功的品牌
  • 在线做托福的网站怎么在百度上面打广告
  • 宁波建设协会网站首页对网站进行seo优化
  • 现在建网站做推广能赚钱吗新余seo
  • 做网站图sem竞价代运营公司
  • 建设个人网站详细点如何制作小程序
  • 网站建设业务怎么做企业培训课程有哪些
  • 虚拟主机怎么弄网站怎样在百度上发布信息
  • 什么叫域名武汉网站seo推广
  • app制作过程搜索引擎优化行业
  • 有用建站宝盒做网站的吗竞价推广课程
  • 郓城做网站网络公司seo面试常见问题及答案
  • 广告设计公司业务范围搜索引擎优化的主要策略
  • 英文网站的首页怎么做广告开户南京seo
  • 电脑使用“碎片整理”程序的作用
  • Vue.js设计于实现 - 概览(二)
  • 数据结构-deque(双端队列)和queue(队列)区别
  • Delphi 中的字符串类型 string 详解
  • Selenium + Python + Pytest + Yaml + POM
  • 【感知机】感知机(perceptron)学习算法例题及详解