eng:debug 版本

user: release 版本

userDebug版本:部分debug版本

LOCAL_MODULE_TAGS := user eng optional test这个样子。

那么LOCAL_MODULE_TAGS设置为不同值有何作用呢?下面是对应不同值编译的结果:
  • user:只有在user版本时该模块才被编译进去;
  • eng:只有在eng版本时该模块才被编译进去;
  • test:只有在tests版本时该模块才被编译进去;
  • optional:在所有版本中都编译该模块进去。
  其中的值可设置为1个或多个,分别对应编译选项的同一个或多个。那么eng、user、userdebug的区别是什么呢?接下来一一揭开:

    
1、当make eng时,也即相当于make。此时BuildType为eng,那么其编译进去的内容包括:
      · Intended for platform-level debugging
      · Installs modules tagged with: eng, debug, user, and/or development
      · Installs non-APK modules that have no tags specified
      · Installs APKs according to the product definition files, in addition to tagged APKs
      · Sets ro.secure=1
      · Sets ro.debuggable=0
      · Sets ro.kernel.android.checkjni=1
      · adbd is enabled by default
    
2、当make user时,此时BuildType为user,那么其编译进去的内容包括:
      · Intended to be the final release
      · Installs modules tagged as user
      · Installs non-APK modules that have no tags specified
      · Installs APKs according to the product definition files (tags are ignored for APK modules)
      · Sets ro.secure=1
      · Sets ro.debuggable=0
      · adbd is disabled by default
    
3、当make userdebug时,此时BuildType为userdebug,那么其编译进去的内容包括:
       the same as user, except:
      · Intended for limited debugging
      · Installs modules tagged with debug
      · Sets ro.debuggable=1
      · adbd is enabled by default 
    
参考网址:http://hi.baidu.com/aokikyon/item/194b9bd9a6188ef593a9740e
              http://www.rosoo.net/a/201108/14878.html
              http://www.cnblogs.com/mr-raptor/archive/2012/06/07/2540359.html
 

Android编译选项eng、user、userdebug的区别的更多相关文章

  1. Android P(9.0) userdebug版本执行adb remount失败

    [DESCRIPTION]      在android P版本上如果按照“FAQ18076 android 6.0 M userdebug版本执行adb remount失败”的做法在userdebug ...

  2. Android中style和theme的区别

    在学习Xamarin android的过程中,最先开始学习的还是熟练掌握android的六大布局-LinearLayout .RelativeLayout.TableLayout.FrameLayou ...

  3. Android之WebViewClient与WebChromeClient的区别

    Android之WebViewClient与WebChromeClient的区别 2012-05-05      0个评论       收藏    我要投稿 ANDROID应用开发的时候可能会用到WE ...

  4. Android Library和Android APP、Java Library的区别

    Android Library和Android APP.Java Library的区别 Android Library在目录结构上与Android App相同,它能包含构建APP所需的一切(如源代码. ...

  5. 【整理】Android中的gravity和layout_gravity区别

    [背景] 在Android中,想要设置个按钮的水平对齐,都累死了: [已解决]ADT中已设置TableLayout布局的情况下如何设置按钮居中对齐    所以现在有必要搞清楚,到底gravity和la ...

  6. Android View的onTouchEvent和OnTouch区别

    还是以自定义的TestButton为例. 我们可以通过重写onTouchEvent方法来处理诸如down move up的消息: public class TestButton extends But ...

  7. Android中layout_gravity和gravity的区别

    安卓中的 layout_gravity 属性和 gravity属性 有啥区别? LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravi ...

  8. Android中px和dip的区别

    在Android手机的诞生之初,由于Android系统是开源的,一开始便有众多的OEM厂商对Android手机进行深度定制,于是乎Android手机的皮肤和屏幕大小都变得百花齐放,这可苦逼了我们这群开 ...

  9. android几种定时器机制及区别

    在android中,经常用到的定时器主要有以下几种实现:一.采用Handler与线程的sleep(long )方法二.采用Handler的postDelayed(Runnable, long) 方法三 ...

随机推荐

  1. mac工具-解析json visualJSON和JSON Accelerator这两款工具

  2. docker gitlab

    Alternatively, you can manually launch the gitlab container and the supporting postgresql and redis ...

  3. 目前主流的国产WebApp框架

    1.FrozenUI:QQ 2.WeUI:WeChat 3.SUI:Taobao

  4. oracle增删改查

    =======================批量删除,只留前十条数据. delete from THIRD_PARTY_MERCHANT a where a.rowid in ( select ro ...

  5. Java多线程中的进程,线程,并行,并发

    2:什么是进程? 通过任务管理器我们就看到了进程的存在. 而通过观察,我们发现只有运行的程序才会出现进程. 进程:就是正在运行的程序. 进程是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内 ...

  6. Perl的基本语法<总结> (转载)

    前言:这篇文章是花了我很多时间.费了我很多心血才完成的,虽然连我自己都觉得无法达到尽善尽美的境界,但希望能帮助大家入门,稍微了解到Perl 到底是个什么样的东西,Perl到底有那些强大的功能,那么这篇 ...

  7. Oracle主库归档丢失,备库日志有gap,在不重建备库的情况下,恢复备库

    本文主要描述Oracle备库日志与主库日志之间有gap,切主库这部分gap的归档日志已经删除或丢失,如何在不重建备库的情况下,恢复备库. 欢迎转载,请注明作者.出处. 作者:张正 blog:http: ...

  8. grep DEMO

    测试数据: [xiluhua@vm-xiluhua][~]$ cat msn.txt aaa bbb bbb ccc ccc ddd bbb eee aaa ccc bbb sss [xiluhua@ ...

  9. PHP最原始的上传文件函数

    <?php $upload_file=$_FILES['upload_file']['tmp_name']; $upload_file_name=$_FILES['upload_file'][' ...

  10. WPF:窗体置顶

    1.设置窗体TopMost属性 private DispatcherTimer timer; public Window1() { InitializeComponent(); Loaded += n ...