在 iOS 和 Android 上运行 Go 代码( 三 )
注意确保为您的 Android SDK 和已下载的 NDK 版本设置正确的位置 。
make android 将我们需要的所有共享库构建到正确的文件夹中 。 现在 , 我们需要将库添加到 CMake:
// android/app/src/main/cpp/CMakeLists.txt// ...add_library(lib_foo SHARED IMPORTED)set_property(TARGET lib_foo PROPERTY IMPORTED_NO_SONAME 1)set_target_properties(lib_foo PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libfoo.so)include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../jniLibs/${CMAKE_ANDROID_ARCH_ABI}/)// ...target_link_libraries(native-lib lib_foo ${log-lib})
我花了一段时间才弄清楚这些设置 , 再次命名很重要 , 因此使用库命名 lib_xxxx 并设置属性很重要 , 同时设置 IMPORTED_NO_SONAME 1, 否则您的 apk 会在错误的位置查找你的库 。
现在 , 我们可以将 JN I 代码连接到 Go 库中 , 然后运行我们的应用程序:
// android/app/src/main/cpp/native-lib.cpp#include "libfoo.h"extern "C" {jstringJava_com_rogchap_foobar_MainActivity_reverse(JNIEnv* env, jobject, jstring str) {const char* cstr = env->GetStringUTFChars(str, 0);char* cout = reverse(const_cast
文章插图
libfoo android应用
结论Go 的优势之一就是它是跨平台的 , 这不仅意味着 Window , Mac 和 Linux , Go 还可以针对许多其他体系结构 , 包括 iOS 和 Android 。 现在 , 您可以在工具栏中找到另一个选项 , 以创建在服务器、移动应用程序甚至 Web(通过 Web 程序集)上运行的共享库 。
本教程的所有代码均可在 GitHub 上获得:
期待听到您使用 Go 构建的新杀手级应用程序 。
原文链接:
作者:Roger Chapman
译者:polarisxu
本文地址:
参考资料[1]go mobile:
[2]Fat 二进制文件:
【在 iOS 和 Android 上运行 Go 代码】[3]$GOROOT/misc/ios/clangwrap.sh :
推荐阅读
- 诺基亚为何宁可逐渐没落也不采用Android系统?长知识了
- iOS版微信又双更新了,AirPods Pro推出牛年限定款
- 苹果关闭iOS 14.2/14.2.1认证通道:iOS 14.3无法降级
- 灯塔市税务局首个5G智慧办税厅开始试运行
- 初探 iOS 自动化工具——快捷指令
- Axiomtek推出AIE100-903-FL-NX AI Edge系统 可在恶劣环境下运行
- 联想发布新款11英寸Android平板电脑Tab P11
- 苹果iOS 14升级这么久,这10个隐藏功能你未必全知道
- 苹果重拳出击,IOS系统再次迎来更新,果粉这下有福了
- 为规避隐私标签不再更新ios应用?谷歌:或将本周更新