Wesley Bunton
Wesley Bunton

Reputation: 155

How to build AOSP app without building all of Android?

I've synced the entire Android repo, and set up a build environment per the instructions here: https://source.android.com/source/building

The build instructions seem to be assuming that you want to build the entire Android platform. I'm really interested in building a specific AOSP app, like contacts, SMS, camera, etc. I've seen mirrors of the stock app's code on GitHub, but there doesn't seem to be any build instructions within those, for example:

https://github.com/android/platform_packages_apps_contacts https://github.com/android/platform_packages_apps_calendar

Is there a build guide for doing this? Am I stuck downloading, modifying, building this huge (100+GB) code set?

Upvotes: 7

Views: 6332

Answers (2)

kfc
kfc

Reputation: 617

here are compile and module-based compilation commands:

lunch:   lunch <product_name>-<build_variant>
tapas:   tapas [<App1> <App2> ...] [arm|x86|mips|armv5] [eng|userdebug|user]
croot:   Changes directory to the top of the tree.
m:       Makes from the top of the tree.
mm:      Builds all of the modules in the current directory, but not their dependencies.
mmm:     Builds all of the modules in the supplied directories, but not their dependencies.
        To limit the modules being built use the syntax: mmm dir/:target1,target2
mma:     Builds all of the modules in the current directory, and their dependencies.
mmma:    Builds all of the modules in the supplied directories, and their dependencies.
cgrep:   Greps on all local C/C++ files.
jgrep:   Greps on all local Java files.
resgrep: Greps on all local res/*.xml files.
godir:   Go to the directory containing a file.

you can look here for other and more build commands : https://source.android.com/setup/build/building and here :https://elinux.org/Android_Build_System And check "build/envsetup.sh" file's comments to see full list.

Upvotes: 0

ItWillDo
ItWillDo

Reputation: 553

Just as you have 'mm' to build a certain target, you can also use 'mma' to build that target with its dependencies. For example:

$ mma Settings -j16

This will scan the project for the dependencies of the Settings app, and will afterward build the dependencies first before commencing the build of the Settings app.

Upvotes: 9

Related Questions