-
Notifications
You must be signed in to change notification settings - Fork 2
Android workspace
Mickael Gaillard edited this page Nov 3, 2017
·
7 revisions
SID...
mkdir -p ~/ros2_android_ws/src
cd ~/ros2_android_ws
wget https://gist.githubusercontent.com/Theosakamg/617cd893813163cdcb9943a08d667964/raw/ros2_java_android.repos
vcs import ~/ros2_android_ws/src < ros2_java_android.repos
cd ~/ros2_android_ws/src/ros2/rosidl_typesupport
patch -p1 < ../../ros2_java/ros2_java/rosidl_ros2_android.diff
cd ~/ros2_android_ws
touch src/ros2/rosidl/python_cmake_module/AMENT_IGNORE
touch src/ros2/rosidl/rosidl_generator_py/AMENT_IGNORE
touch src/ros2/rcl_interfaces/test_msgs/AMENT_IGNORE
cd ~/ros2_android_ws
. ~/ament_ws/install_isolated/local_setup.sh
export ANDROID_HOME=/opt/android-sdk // Path to your Android SDK
export ANDROID_NDK=$ANDROID_HOME/ndk-bundle // Path to your Android NDK
export PYTHON_PATH=/usr/bin/python3
export ROOT_PATH="~/ament_ws/install_isolated;~/ros2_android_ws/install_isolated"
export ROS2JAVA_PATH=$ANDROID_NDK/build/cmake/android.toolchain.cmake
export ANDROID_LANG=arm-linux-androideabi-clang
export ANDROID_ABI=armeabi-v7a
export ANDROID_VER=android-21
ament build --isolated --force-cmake-config --cmake-args \
-DTHIRDPARTY=ON \
-DPYTHON_EXECUTABLE=$PYTHON_PATH \
-DCMAKE_FIND_ROOT_PATH=$ROOT_PATH \
-DCMAKE_TOOLCHAIN_FILE=$ROS2JAVA_PATH \
-DANDROID_FUNCTION_LEVEL_LINKING=OFF \
-DANDROID_TOOLCHAIN_NAME=$ANDROID_LANG \
-DANDROID_STL=gnustl_shared \
-DANDROID_ABI=$ANDROID_ABI \
-DANDROID_NDK=$ANDROID_NDK \
-DANDROID_NATIVE_API_LEVEL=$ANDROID_VER \
-DANDROID_HOME=$ANDROID_HOME \
-DCOMPILE_EXAMPLES=OFF \
-- \
--ament-gradle-args -Pament.android_stl=gnustl_shared -Pament.android_abi=$ANDROID_ABI -Pament.android_ndk=$ANDROID_NDK --stacktrace --parallel --daemon --configure-on-demand --
Talker:
adb install ~/ros2_android_ws/install_isolated/ros2_talker_android/ros2_talker_android-debug.apk
Listener:
adb install ~/ros2_android_ws/install_isolated/ros2_listener_android/ros2_listener_android-debug.apk