当前位置: 首页 > news >正文

公司网站开发费摊销淘宝网页版登录入口官方

公司网站开发费摊销,淘宝网页版登录入口官方,网页制作平台的是,站点提交原生开发套件 (NDK) 是一套工具#xff0c;使能够在 Android 应用中使用 C 和 C 代码#xff0c;并提供众多平台库#xff0c;可使用这些平台库管理原生 activity 和访问实体设备组件#xff0c;例如传感器和触控输入。 NDK 可能不适合大多数 Android 编程初学者#xff…原生开发套件 (NDK) 是一套工具使能够在 Android 应用中使用 C 和 C 代码并提供众多平台库可使用这些平台库管理原生 activity 和访问实体设备组件例如传感器和触控输入。 NDK 可能不适合大多数 Android 编程初学者这些初学者只需使用 Java 代码和框架 API 开发应用。 如果需要实现下列目标NDK 就能派上用场 进一步提升设备性能以降低延迟或运行游戏或物理模拟等计算密集型应用。重复使用自己或其他开发者的 C 或 C 库。 开发者可以在 Android Studio 2.2 或更高版本中使用 NDK 将 C 和 C 代码编译到原生库中然后使用 Android Studio 的集成构建系统 Gradle 将原生库打包到 APK 中。Java 代码随后可以通过 Java 原生接口 (JNI) 框架调用原生库中的函数。 Android Studio 编译原生库的默认构建工具是 CMake。由于很多现有项目都使用 ndk-build 构建工具包因此 Android Studio 也支持 ndk-build。如果创建新的原生库则应使用 CMake。 一、基本流程操作 Android Studio 设置完成后可以直接创建支持 C/C 的新项目。但如果需要向现有 Android Studio 项目添加或导入原生代码可以按以下基本流程操作 编写 C 代码首先你需要编写 C 代码并将其编译成适用于 Android 平台的共享库.so 文件。这通常需要使用 Android NDKNative Development Kit它提供了用于编译本地代码的工具链。 创建 Android 项目接下来需要创建一个 Android 项目用于包装你的 C 代码和 Java/Kotlin 代码。这个项目可以使用 Android Studio 来创建和管理。 集成本地库在 Android 项目中需要将编译好的 .so 文件放置在正确的位置通常是在 app/src/main/jniLibs/ABI/ 目录下其中 ABI 是目标设备的 ABI如 armeabi-v7a, arm64-v8a, x86, x86_64 等。这样Android 运行时就能找到并加载这些本地库。 使用 JNI 调用 C 函数在 Java 或 Kotlin 代码中可以使用 JNIJava Native Interface来调用 C 函数。需要声明本地方法并在 C 代码中实现这些方法的逻辑。JNI 允许 Java/Kotlin 代码与本地代码进行交互。 构建和测试最后构建你的 Android 应用并在目标设备上进行测试。确保你的 C 代码能够正确执行并且与 Java/Kotlin 代码之间的交互没有问题。 二、示例代码 Android 提供了 Java Native Interface (JNI) 来调用 native 代码如 C/C。下面是一个简单的示例帮你了解如何在 Android App 里调用 C 代码。 C 代码 (fir.c) #include stdio.hvoid fir(int* input, int* output, int length) {for (int i 0; i length; i) {output[i] input[i] * 2; // 一个简单的 FIR 滤波器} }这个 C 代码定义了一个 fir 函数它将输入数组乘以 2并将结果存储在输出数组中。 JNI 头文件 (fir.h) #ifndef FIR_H #define FIR_H#ifdef __cplusplus extern C { #endifvoid Java_MainActivity_fir(JNIEnv* env, jobject thiz, jintArray input, jintArray output, jint length);#ifdef __cplusplus } #endif#endif // FIR_H这个头文件定义了一个 JNI 函数 Java_MainActivity_fir它将被 Java 代码调用。该函数将输入数组、输出数组和长度作为参数。 JNI 实现文件 (fir.cpp) #include fir.h #include jni.hvoid Java_MainActivity_fir(JNIEnv* env, jobject thiz, jintArray input, jintArray output, jint length) {// 获取输入数组的指针jint* input_ptr env-GetIntArrayElements(input, NULL);// 获取输出数组的指针jint* output_ptr env-GetIntArrayElements(output, NULL);// 调用 C 函数fir(input_ptr, output_ptr, length);// 释放数组指针env-ReleaseIntArrayElements(input, input_ptr, 0);env-ReleaseIntArrayElements(output, output_ptr, 0); }这个文件实现了 JNI 函数 Java_MainActivity_fir。它获取输入数组和输出数组的指针调用 C 函数 fir并释放数组指针。 Android 项目结构 jni 目录包含 C 代码和 JNI 头文件 fir.cfir.hfir.cppjava 目录包含 Java 代码 MainActivity.java Java 代码 (MainActivity.java) public class MainActivity extends AppCompatActivity {// 加载 native 库static {System.loadLibrary(fir);}// 声明 native 方法public native void fir(int[] input, int[] output, int length);Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 创建输入数组int[] input new int[] {1, 2, 3, 4, 5};// 创建输出数组int[] output new int[input.length];// 调用 native 方法fir(input, output, input.length);// 打印输出结果for (int i 0; i output.length; i) {Log.d(MainActivity, output[ i ] output[i]);}} }这个 Java 代码加载 native 库声明 native 方法 fir并在 onCreate 方法中调用该方法。 Android.mk 文件 LOCAL_PATH : $(call my-dir) include $(CLEAR_VARS)LOCAL_MODULE : fir LOCAL_SRC_FILES : fir.cpp LOCAL_LDLIBS : -lloginclude $(BUILD_SHARED_LIBRARY)这个文件告诉 Android NDK 如何编译 native 库。 三、编译和运行 在 Android 项目目录下创建 jni 目录并将 C 代码和 JNI 头文件添加到该目录下。在 jni 目录下创建 Android.mk 文件并添加编译指令。使用 Android NDK 编译 native 库ndk-build NDK_DEBUG1在 Java 代码中加载 native 库并调用 native 方法。运行 Android App并查看输出结果。 输出结果应该是 D/MainActivity: output[0] 2 D/MainActivity: output[1] 4 D/MainActivity: output[2] 6 D/MainActivity: output[3] 8 D/MainActivity: output[4] 10 小结 上述是基本的概念流程如果想自己试一试可以以此Hello JNI代码为例增加输入和显示等修改算法构建一个在手机运行的 app我做了一个简单的 app截图如下 老徐端午2024/6/10
http://www.zqtcl.cn/news/589022/

相关文章:

  • 有什么较好的网站开发框架娱乐网站模板
  • 宿迁网站建设托管wordpress 萝莉
  • 定制网站开发冬天里的白玫瑰制作复杂的企业网站首页
  • 网站开发及设计演讲海报免费做网站app下载
  • 做动态图片的网站吗自考网站建设与实践
  • 建外贸网站需要多少钱胖咯科技 网站建设
  • wordpress注明网站做微网站的第三方登录
  • 学网站建设维护网站公司建设公司
  • 做小型网站的公司wordpress 主题上传
  • 网站之家查询重庆市建设项目环境申报表网站
  • 网站建设基础及流程网站运营一个月多少钱
  • 南沙免费网站建设wordpress邮箱注册
  • 网站关键字优化软件网络营销推广方式包括?
  • 专做装修的网站pc端好玩的大型网游
  • 洞泾网站建设网易考拉的网站建设
  • 网站建设的市场调研杭州网络公司项目合作
  • 济源网站制作电子商务平台有哪些
  • 网站轮播图怎么设计河南省住房城乡建设厅网站首页
  • o2o商城网站建设wordpress后台密码忘记了怎么办
  • 网站排版策划公司官网网站建设想法
  • 泉州网站建设报价建网站找哪家公司
  • 国外网站建设推广iapp网站怎么做软件
  • 网站的设计步骤做网站的虚拟机怎么用
  • 游戏的网站做普通网站多少钱
  • 单位门户网站建设苏州吴中区做网站公司
  • 新网站内部优化怎么做家电网站建设
  • 怎么看网站源码用什么做的wordpress 六亩填
  • 网站建设实习报告范文闵行区邮编
  • h5网站模板免费下载怎样制作专业简历
  • php网站语言切换功能如何做263邮箱入口