<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-348  評(píng)論-598  文章-0  trackbacks-0

    There is a lot of confusion surrounding the work flow in the Android source tree, so allow me to simplify:

    1. Follow the initial instructions for downloading the source at:

      http://source.android.com/download

    2. Set up your environment to build the engineering build for the generic device and generic product. This is similar to the SDK, but with a few pieces missing.

      $ source build/envsetup.sh
      $ lunch 1

    3. To build for the first time:

      $ make

      If you have a multi-core system, you can build with make -jN where N is twice the number of cores on your machine. This should speed up the first build considerably.

    4. To launch the emulator from your build:

      $ ./out/host/<your-machine-type>/bin/emulator

      On my system <your-machine-type> is linux-x86.

      NOTE: The emulator knows where to find system and data images as a result of running lunch 1 above. This sets the environment variable ANDROID_PRODUCT_OUT to point to the target directory. For this example, it should be out/target/product/generic/.

    5. If you wish to make changes to the source code, there are handy utilities that have been exposed to your environment by source build/envsetup.sh above. For example, if you modify the Email app and just want to rebuild it:

      $ mmm packages/apps/Email

    6. To see your changes in the emulator you can run:

      $ adb remount
      $ adb sync

      Which will copy the regenerated Email.apk file into the emulator’s /system/app folder, triggering the PackageManager to automatically reinstall it.

    7. Or if you change framework resources in frameworks/base/core/res/res/ you could regenerate framework-res.apk with:

      $ mmm frameworks/base/core/res

      Or if you modified even the framework itself you could run:

      $ ONE_SHOT_MAKEFILE="frameworks/base/Android.mk" make framework

      This is a special variation of mmm which is used to build frameworks/base/core/java.

      To sync these changes you must restart the running framework and sync, as with this handy sequence:

      $ adb remount
      $ adb shell stop
      $ adb sync
      $ adb shell start

    8. Finally, to debug your changes you can use the DDMS tool to select a process for debug and then attach Eclipse to it. If you have the Eclipse Android Development plugin installed, there is a special DDMS perspective which you can use to choose the process for debug. To attach Eclipse to it, see these instructions:

      http://source.android.com/using-eclipse

      This document also describes how to use Eclipse for development. Any IDE should work with the proper finagling though. Just note that the IDE won’t really by an integrated environment, the final output of APKs, system.img, and even the generation of R.java files will have to be done by make!

      A note about the processes in Android:

      • system_process houses all things under frameworks/base/services. This includes the PackageManagerService, StatusBarService, etc. It has many, many threads (one for each service, and then one main UI thread), so be wary when debugging.
      • com.android.acore hosts Launcher (home), Contacts, etc. You can determine the apps/providers that run here by looking forandroid:process="android.process.acore" in the various AndroidManifest.xml files in packages/.

      Also remember that the “framework” (under frameworks/base/core/java) is not hosted by any one process. It is a library used by most processes, so to debug code there you can usually use a simple demo app that takes advantage of whatever you changed and debug that app’s process. A useful trick for setting up your debug connection is to call Debug.waitForDebugger() during some startup part of an application or system service.



    ---------------------------------------------------------
    專注移動(dòng)開發(fā)

    Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
    posted on 2010-09-28 11:25 TiGERTiAN 閱讀(510) 評(píng)論(0)  編輯  收藏 所屬分類: AndroidLinux
    主站蜘蛛池模板: 亚洲精品你懂的在线观看| 亚洲欧美黑人猛交群| 青娱分类视频精品免费2| 亚洲色偷偷色噜噜狠狠99网| 人人狠狠综合久久亚洲高清| 91免费国产视频| 亚洲中文字幕在线无码一区二区| 四虎影视在线永久免费观看| a级毛片在线免费| 亚洲精品乱码久久久久久蜜桃图片 | 午夜在线亚洲男人午在线| 激情综合色五月丁香六月亚洲| 亚洲黄色片免费看| 曰批全过程免费视频观看免费软件 | 国产又大又黑又粗免费视频| 手机看片国产免费永久| 亚洲熟女综合一区二区三区| 激情97综合亚洲色婷婷五| 免费福利网站在线观看| 中文字幕乱理片免费完整的| 中中文字幕亚洲无线码| 亚洲精品乱码久久久久久蜜桃不卡| 曰批视频免费30分钟成人| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 天堂在线免费观看中文版| 两个人看的www高清免费视频| 亚洲日韩av无码中文| 亚洲AV区无码字幕中文色| 四虎永久在线精品免费影视| 在线视频精品免费| APP在线免费观看视频| 国产亚洲美女精品久久| 日本亚洲精品色婷婷在线影院| a级亚洲片精品久久久久久久| 麻豆国产VA免费精品高清在线| 99在线在线视频免费视频观看| 黄色免费在线观看网址| 亚洲色偷偷综合亚洲AV伊人蜜桃 | 一级毛片免费在线播放| 亚洲熟妇AV日韩熟妇在线| 亚洲激情视频网站|