自己动手编译最新Android源码及SDK : http://blog.csdn.net/dd864140130/article/details/51718187
官方文档,怎样编译sdk : https://android.googlesource.com/platform/sdk/+/master/docs/howto_build_SDK.txt

Android N Car源码到手,但官方还没有发布最新的SDK,源码中开发应用就有很大的难度,有了自己的SDK,无论framework层如何变动,都可以在Android Studio中开发得心应手。

Copyright (C)  The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Subject: How to build an Android SDK & ADT Eclipse plugin.
Date: //
Updated: //
Table of content:
- License
- Foreword
- Building an SDK for MacOS and Linux
- Building an SDK for Windows
- Building an ADT plugin for Eclipse
- Conclusion
----------
- License
----------
Copyright (C) The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-----------
- Foreword
-----------
This document explains how to build the Android SDK and the ADT Eclipse plugin.
It is designed for advanced users which are proficient with command-line
operations and know how to setup the pre-required software.
Basically it's not trivial yet when done right it's not that complicated.
--------------------------------------
- Building an SDK for MacOS and Linux
--------------------------------------
First, setup your development environment and get the Android source code from
git as explained here:
http://source.android.com/source/download.html
For example for the cupcake branch:
$ mkdir ~/my-android-git
$ cd ~/my-android-git
$ repo init -u https://android.googlesource.com/platform/manifest -b master -g all,-notdefault,tools
$ repo sync
Then once you have all the source, simply build the SDK using:
$ cd ~/my-android-git
$ . build/envsetup.sh
$ lunch sdk-eng
$ make sdk
This will take a while, maybe between minutes and several hours depending on
your machine. After a while you'll see this in the output:
Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>_mac-x86.zip
Some options:
- Depending on your machine you can tell 'make' to build more things in
parallel, e.g. if you have a dual core, use "make -j4 sdk" to build faster.
- You can define "BUILD_NUMBER" to control the build identifier that gets
incorporated in the resulting archive. The default is to use your username.
One suggestion is to include the date, e.g.:
$ export BUILD_NUMBER=${USER}-`date +%Y%m%d-%H%M%S`
There are certain characters you should avoid in the build number, typically
everything that might confuse 'make' or your shell. So for example avoid
punctuation and characters like $ & : / \ < > , and .
------------------------------
- Building an SDK for Windows
------------------------------
Full Windows SDK builds are now only supported on Linux -- most of the
framework is not designed to be built on Windows so technically the Windows
SDK is build on top of a Linux SDK where a few binaries are replaced. So it
cannot be built on Windows, and it cannot be built on Mac, only on Linux.
I'll repeat this again because it's important:
To build the Android SDK for Windows, you need to use a *Linux* box.
A- Pre-requisites
-----------------
Before you can even think of building the Android SDK for Windows, you need to
perform the steps from section "2- Building an SDK for MacOS and Linux" above:
setup and build a regular Linux SDK. Once this working, please continue here.
Under Ubuntu, you will need the following extra packages:
$ sudo apt-get install tofrodos
tofrodos adds a unix2dos command
B- Building
-----------
To build, perform the following steps:
$ . build/envsetup.sh
$ lunch sdk-eng
$ make win_sdk
Note that this will build both a Linux SDK then a Windows SDK.
The result is located at
out/host/windows/sdk/android-sdk_eng.${USER}_windows/
C- Building just the tools
--------------------------------------
You can also build isolated windows tools directly on Linux without building
the full SDK.
To build, perform the following steps:
$ cd ~/my-android-git
$ . build/envsetup.sh
$ lunch sdk-eng
$ make winsdk-tools
A specific tool can be built using:
$ make host_cross_adb
Then the binaries are located at
out/host/windows-x86/bin/adb.exe
-------------------------------------
- Building an ADT plugin for Eclipse
-------------------------------------
We've simplified the steps here.
It used to be that you'd have to download a specific version of
Eclipse and install it at a special location. That's not needed
anymore.
Instead you just change directories to your git repository and invoke the
build script by giving it a destination directory and an optional build number:
$ mkdir ~/mysdk
$ cd ~/my-android-git # <-- this is where you did your "repo sync"
$ sdk/eclipse/scripts/build_server.sh ~/mysdk $USER
The first argument is the destination directory. It must be absolute. Do not
give a relative destination directory such as "../mysdk" -- this would make the
Eclipse build fail with a cryptic message:
BUILD SUCCESSFUL
Total time: minute seconds
**** Package in ../mysdk
Error: Build failed to produce ../mysdk/android-eclipse
Aborting
The second argument is the build "number". The example used "$USER" but it
really is a free identifier of your choice. It cannot contain spaces nor
periods (dashes are ok.) If the build number is missing, a build timestamp will
be used instead in the filename.
The build should take something like - minutes.
When the build succeeds, you'll see something like this at the end of the
output:
ZIP of Update site available at ~/mysdk/android-eclipse-v200903272328.zip
or
ZIP of Update site available at ~/mysdk/android-eclipse-<buildnumber>.zip
When you load the plugin in Eclipse, its feature and plugin name will look like
"com.android.ide.eclipse.adt_0.9.0.v200903272328-<buildnumber>.jar". The
internal plugin ID is always composed of the package, the build timestamp and
then your own build identifier (a.k.a. the "build number"), if provided. This
means successive builds with the same build identifier are incremental and
Eclipse will know how to update to more recent ones.
-------------
- Conclusion
-------------
This completes the howto guide on building your own SDK and ADT plugin.
Feedback is welcome on the public Android Open Source forums:
http://source.android.com/discuss
If you are upgrading from a pre-cupcake to a cupcake or later SDK please read
the accompanying document "howto_use_cupcake_sdk.txt".
-end-

Android Automotive开发之一《编译自己的SDK 》 // TOBEDONE的更多相关文章

  1. 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上

    博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 A ...

  2. Android Automotive开发之一《环境: JDK7&JDK8切换 》

    http://ubuntuhandbook.org/index.php/2015/01/install-openjdk-8-ubuntu-14-04-12-04-lts/ 安装OpenJDK8 sud ...

  3. 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

                 分类: Android 系统开发(5)                                              作者同类文章X 版权声明:本文为博主原创文章 ...

  4. 【Android 应用开发】Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载

    19af543b068bdb7f27787c2bc69aba7f Additional Download (32-, 64-bit) Package r10 STL debug info androi ...

  5. 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

    作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...

  6. [Android Pro] 开发一流Android SDK

    cp from : https://blog.csdn.net/dd864140130/article/details/53558011 本篇文章已授权微信公众号 guolin_blog (郭霖)独家 ...

  7. [Android Pro] 开发一流的 Android SDK:Fabric SDK 的创建经验

    cp from : https://academy.realm.io/cn/posts/oredev-ty-smith-building-android-sdks-fabric/ Ty Smith T ...

  8. Windows下搭建Android NDK开发环境及命令行编译

    首先说明本文内的相关安装操作参考<Pro Android C++ with the NDK>一书. 安装 Windows搭建Android NDK开发环境需要安装如下部分(同时需要配置对应 ...

  9. windows下用ADT进行android NDK开发的具体教程(从环境搭建、配置到编译全过程)

    郑重申明:如需转载本博客,请注明出处,谢谢! 这几天在学习android NDK的开发.那么首先让我们来看看android NDK开发的本质是什么. NDK(Native Development Ki ...

随机推荐

  1. 使用Fiddler抓取手机请求

    使用Fiddler抓取手机请求 Fiddler 手机 今天想尝试在手机上抓包,发现一个好玩的小工具——Fiddler. Fiddler是一个专门的抓包工具,可以模拟请求,修改请求,手机应用调试等.还是 ...

  2. 消费RabbitMQ时的注意事项,如何禁止大量的消息涌到Consumer

    按照官网提供的订阅型写法( Retrieving Messages By Subscription ("push API")) 我发现,RabbitMQ服务器会在短时间内发送大量的 ...

  3. ZooKeeper:Java客户端网络处理

    了解ZooKeeper客户端的实现,对于使用ZooKeeper的客户端非常重要. 通过对客户端源码的阅读,了解了如下信息: 创建ZooKeeper对象时,应会创建一个ClientCnxn(代表了客户端 ...

  4. {"errcode":40097,"errmsg":"invalid args hint: [vjNe7xxxxxx8vr19]"}——记录一次微信错误处理

    错误情况概述: 启动应用之后,微信调用 相机拍照 等接口是可以正常使用的, 但是过了一段时间(2个小时左右--token/jsapi_ticket的过期时间),微信调用相机拍照的功能失效,启用debu ...

  5. jmeter之连接mysql和SQL Server配置

    下载jdbc驱动 在使用jmeter做性能或自动化测试的时候,往往需要直接对数据库施加压力,或者某些参数只能从数据库获取,这时候就必须使用jmeter连接数据库. 1.下载对应的驱动包 mysql驱动 ...

  6. vs2013给项目统一配置boost库

    1.打开项目,然后点击菜单中的 视图->其他窗口->属性管理器 2. 打开属性管理器,点击项目前的箭头,展开项目,找到debug或者release下面的Microsoft.Cpp.Win3 ...

  7. WPF 自定义标题栏 自定义菜单栏

    自定义标题栏 自定义列表,可以直接修改WPF中的ListBox模板,也用这样类似的效果.但是ListBox是不能设置默认选中状态的. 而我们需要一些复杂的UI效果,还是直接自定义控件来的快 GitHu ...

  8. POJ 2752 Seek the Name, Seek the Fame [kmp]

    Seek the Name, Seek the Fame Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 17898   Ac ...

  9. 怎么在GitHub上寻找开源项目呢

    find projects GitHub Explore: Popular and trending projects. GitHub Stars: Projects starred by other ...

  10. 进击的Python【第二十一章】

    s14day21 上节内容回顾: 1.请求周期 url> 路由 > 函数或类 > 返回字符串或者模板语言? Form表单提交: 提交 -> url > 函数或类中的方法 ...