新增:实现testHello()),生成libcomclientjni.so,供APP调用。
This commit is contained in:
18
build/Ndk_Android.mk
Normal file
18
build/Ndk_Android.mk
Normal file
@ -0,0 +1,18 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../code/
|
||||
|
||||
LOCAL_LDLIBS := -llog -lc
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
../code/comclientjni.cpp
|
||||
|
||||
LOCAL_CFLAGS := -D__OS_ANDROID
|
||||
LOCAL_CPPFLAGS += -std=c++11 -android
|
||||
|
||||
LOCAL_MODULE := comclientjni
|
||||
|
||||
# LOCAL_LDFLAGS := -Wl,--hash-style=both
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
5
build/Ndk_Application.mk
Normal file
5
build/Ndk_Application.mk
Normal file
@ -0,0 +1,5 @@
|
||||
APP_STL:=gnustl_static
|
||||
#APP_STL:=c++_static
|
||||
APP_ABI:=armeabi-v7a
|
||||
APP_PLATFORM:=android-23
|
||||
APP_BUILD_SCRIPT:=Ndk_Android.mk
|
||||
99
build/ndk_make.sh
Normal file
99
build/ndk_make.sh
Normal file
@ -0,0 +1,99 @@
|
||||
#!/bin/bash
|
||||
|
||||
source /opt/ndk/env/ndk_env.sh
|
||||
|
||||
# 定义颜色
|
||||
RED="\033[0;31m"
|
||||
GREEN="\033[0;32m"
|
||||
YELLOW="\033[1;33m"
|
||||
BLUE="\033[0;34m"
|
||||
RESET="\033[0m"
|
||||
|
||||
# 路径
|
||||
NDK_PROJECT_PATH=$(pwd)
|
||||
APP_MK="./Ndk_Application.mk"
|
||||
ANDROID_MK="./Ndk_Android.mk"
|
||||
FIRMWARE_PATH="obj/local/armeabi-v7a/myapp"
|
||||
DEVICE_DATA="/data/"
|
||||
DEVICE_IP=""
|
||||
|
||||
clean() {
|
||||
echo -e "${YELLOW}Cleaning up...${RESET}"
|
||||
ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=$APP_MK APP_BUILD_SCRIPT=$ANDROID_MK clean
|
||||
echo -e "${YELLOW}Removing obj/ and libs/ directories...${RESET}"
|
||||
rm -rf obj/ libs/
|
||||
sync
|
||||
echo -e "${GREEN}Cleaned up.${RESET}"
|
||||
}
|
||||
|
||||
build_only() {
|
||||
echo -e "${BLUE}Building myapp...${RESET}"
|
||||
ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=$APP_MK APP_BUILD_SCRIPT=$ANDROID_MK
|
||||
echo -e "${GREEN}Only build completed successfully.${RESET}"
|
||||
}
|
||||
|
||||
push_only() {
|
||||
if [ -z "$DEVICE_IP" ]; then
|
||||
echo -e "${RED}Error: No device IP provided. Use -p <IP>${RESET}"
|
||||
exit 1
|
||||
fi
|
||||
echo -e "${BLUE}Connecting to device $DEVICE_IP...${RESET}"
|
||||
adb connect $DEVICE_IP
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}Failed to connect to device $DEVICE_IP${RESET}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${BLUE}Pushing myapp to $DEVICE_DATA...${RESET}"
|
||||
adb -s $DEVICE_IP push $FIRMWARE_PATH $DEVICE_DATA
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}Failed to push myapp to $DEVICE_DATA${RESET}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}Push completed successfully.${RESET}"
|
||||
}
|
||||
|
||||
build_and_push() {
|
||||
build_only
|
||||
push_only
|
||||
}
|
||||
|
||||
show_help() {
|
||||
echo -e "${YELLOW}Usage: $0 [options]${RESET}"
|
||||
echo
|
||||
echo "Options:"
|
||||
echo -e " ${BLUE}-c${RESET} Clean project (remove obj/ and libs/)"
|
||||
echo -e " ${BLUE}-p <IP>${RESET} Push myapp to device with given IP"
|
||||
echo -e " ${BLUE}-bp <IP>${RESET} Build and push to device with given IP"
|
||||
echo -e " ${BLUE}-h${RESET} Show this help message"
|
||||
echo
|
||||
echo -e "${YELLOW}Default:${RESET} If no options are given, only build the project."
|
||||
}
|
||||
|
||||
# 参数解析
|
||||
if [ $# -eq 0 ]; then
|
||||
build_only
|
||||
exit 0
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
-c)
|
||||
clean
|
||||
;;
|
||||
-p)
|
||||
DEVICE_IP="$2"
|
||||
push_only
|
||||
;;
|
||||
-bp)
|
||||
DEVICE_IP="$2"
|
||||
build_and_push
|
||||
;;
|
||||
-h)
|
||||
show_help
|
||||
;;
|
||||
*)
|
||||
show_help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user