#!/bin/bash # # Copyright (C) 2014 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. # # Please change NDK_BUILD to point to the appropriate ndk-build in NDK. It's recommended to # use the NDK with maximum backward compatibility, such as the NDK bundle in Android SDK. NDK_BUILD="$HOME/Android/android-ndk-r16b/ndk-build" function generateCopyRightComment() { local year="$1" local isAndroidManifest="$2" local lineComment='#' local copyrightStart="" local copyrightEnd="" local commentStart="" local commentEnd="" if [[ -n "$isAndroidManifest" ]]; then lineComment="" copyrightStart=$'' commentStart='' fi copyrightInMk=$( cat <"${targetFile}" } function generateAndroidManifest { local targetFile="$1" local arch="$2" local splitNamePart="$3" ( cat < ANDROIDMANIFEST ) >"${targetFile}" } function generateModuleForContentPartialMk { local arch="$1" local packagePartialName="$2" local rawDir="$3" local aaptRevisionFlags="$4" localPackage=$( cat <"${targetFile}" } # Go build everything rm -rf libs cd jni/ $NDK_BUILD clean $NDK_BUILD cd ../ for arch in $(ls libs/); do ( mkdir -p tmp/$arch/raw/lib/$arch/ mv libs/$arch/* tmp/$arch/raw/lib/$arch/ # The library file name in the new revision apk should have the same file name with base apk. mkdir -p tmp/$arch/raw_revision/lib/$arch/ mv tmp/$arch/raw/lib/$arch/libsplitappjni_revision.so \ tmp/$arch/raw_revision/lib/$arch/libsplitappjni.so archWithoutDash="${arch//[^a-zA-Z0-9_]/_}" generateAndroidManifest "tmp/$arch/AndroidManifest.xml" "${archWithoutDash}" "" generateAndroidMk "tmp/$arch/Android.mk" "$arch" ) done generateLibsAndroidMk "tmp/Android.mk" rm -rf libs rm -rf obj mv tmp libs