Hello,
I have a question about the best way to manage an Android software project that will involve modifying core Android code.
My question is not a normal "how to do this in Android", but rather, concerns the code management process and the build procedure. Has anyone any experience with this, or can point me somewhere?
We are starting a project to implement an audio application on Android phones, the various ARM architectural flavours. This will involve modifying and extending the C/C++ code in the Media Framework library, plus some supporting Java code. In other words, relative to the complete Android codebase, the amount of code that will be affected is quite small. We will need to support various Android versions and various phone manufacturers and models per manufacturer. Our development process concerns using the pure AOSP as a basis, and initially targeting the Google Nexus as a reference platform. After that, customisations needed for real-world phones will be done in cooperation with the phone manufacturers.
From a code management viewpoint, my idea was to maintain a git repository for our Media Framework files, that will be branched for each maintained version of Android. Separately, we will check out from the Google AOSP repository the code for each supported version of Android, and overlay/merge our Media Framework code onto this codebase. The resulting codebase for each version of Android will be built targeted to the range of Android phones that we support, initially the reference Google Nexus.
Some development approaches that come to mind:
- For each Android version, we could patch Android's Media Framework with our code, and then maintain the entire merged AOSP in a local git repository. This would be a huge undertaking, when branches are included, but would at least guarantee that the codebase is always up to date. Howoever, merging our code changes across difference Android versions would be difficult.
- Another option is to only maintain our Media Framework files in a local git repository, branched for each Android version. Before building a specific Android version,we could checkout the Android version from the Google repository (or keep it cached locally on our build system or on developers' machines) and then patch Android's Media Framework files with our files.
Many thanks,
polomora
I have a question about the best way to manage an Android software project that will involve modifying core Android code.
My question is not a normal "how to do this in Android", but rather, concerns the code management process and the build procedure. Has anyone any experience with this, or can point me somewhere?
We are starting a project to implement an audio application on Android phones, the various ARM architectural flavours. This will involve modifying and extending the C/C++ code in the Media Framework library, plus some supporting Java code. In other words, relative to the complete Android codebase, the amount of code that will be affected is quite small. We will need to support various Android versions and various phone manufacturers and models per manufacturer. Our development process concerns using the pure AOSP as a basis, and initially targeting the Google Nexus as a reference platform. After that, customisations needed for real-world phones will be done in cooperation with the phone manufacturers.
From a code management viewpoint, my idea was to maintain a git repository for our Media Framework files, that will be branched for each maintained version of Android. Separately, we will check out from the Google AOSP repository the code for each supported version of Android, and overlay/merge our Media Framework code onto this codebase. The resulting codebase for each version of Android will be built targeted to the range of Android phones that we support, initially the reference Google Nexus.
Some development approaches that come to mind:
- For each Android version, we could patch Android's Media Framework with our code, and then maintain the entire merged AOSP in a local git repository. This would be a huge undertaking, when branches are included, but would at least guarantee that the codebase is always up to date. Howoever, merging our code changes across difference Android versions would be difficult.
- Another option is to only maintain our Media Framework files in a local git repository, branched for each Android version. Before building a specific Android version,we could checkout the Android version from the Google repository (or keep it cached locally on our build system or on developers' machines) and then patch Android's Media Framework files with our files.
Many thanks,
polomora
Aucun commentaire:
Enregistrer un commentaire