AS3.0上开发NDK演示DEMO步骤

Step1 创建NDK项目

注意勾选include C++ support

在这里插入图片描述

然后都是默认选项

Step2 创建本地JNI测试类

/**
 * @auther:HWQ
 * @description:
 * @date:2018-09-25
 * @time:22:04
 */
//创建JNI类
public class JNITest {
    //加载类库名称    稍后生成的so文件与此处命名有关联
    static {
        System.loadLibrary("MyNDK");
    }

    //写一个测试JNI类的native方法    这里就写一个求和方法    最开始创建时报红是正常的
    public native int getSum(int a, int b);
}

在这里插入图片描述

Step3 生成C++头文件

进入到JNITest类下,然后输入javah JNI类全路径生成C++的头文件。生成后需要稍等片刻才可以看见生成的头文件。

在这里插入图片描述
在这里插入图片描述

Step4 将生成的头文件复制到CPP文件夹下并改名。

在这里插入图片描述

例如改名为JNITest.h

在这里插入图片描述

然后创建cpp文件JNITest.cpp,并补全cpp文件中测试代码。然后删除最初生成的头文件com_ndk_archermind_myndk_JNITest.h。

在这里插入图片描述

//导入jni.h头文件
#include <jni.h>
//导入JNI本地类生成的JNITest.h头文件   注意此处不能使用include <JNITest.h>   而要使用include "JNITest.h"这样引入   不然会报错
#include "JNITest.h"

JNIEXPORT jint JNICALL Java_com_ndk_archermind_myndk_JNITest_getSum
        (JNIEnv *, jobject, jint a, jint b) {
    return a + b;
};

然后同步代码,此时再看JNITest类native方法已经不再报红,变成灰色在这里插入图片描述

Step5配置CMakeLists文件和Moudle下的build.gradle文件

CMakeLists文件修正如下 注意在CMakeLists下备注要在备注的前面加#符号

加//会不识别备注而报错

在这里插入图片描述

其中类库名称是来自于JNITest这个本地类中的加载库代码来的,两者需要保持一致,即与下图中的命名要一致

在这里插入图片描述

Moudle下的build.gradle文件如下

在这里插入图片描述

Step6 在MainActivity中添加测试JNITest类代码

在这里插入图片描述

效果图如下

在这里插入图片描述
动态

如果在安装时发生下图错误

在这里插入图片描述

请直接在Moudle的build.gradle文件中ndk配置改为对应支持生成的类库类型即可

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
demo版本所展示的部分功能: 1、创建窗口 2、设置窗口宽高,标题 3、拖拽边缘缩放窗口,拖拽窗口 4、双击顶端的标题栏,最大化和缩放 5、实现不同的窗口机制 等等……………… core核心包结构初略讲解: IWindow接口:定义所有窗口,并且Window实现了该接口 Module类:模块基类 PopModule类:弹出型环境类,继承Module PopWindow类:弹出型窗口,继承Window Window类:窗口基类 WindowEvent类:窗口事件类 WindowsManager类:窗口管理基类 core核心包实现讲解: 凡是flash cs3中继承Module的元件,都可以直接在元件的第一帧撰写代码,并且在编译的过程中会自动把代码编译出来并继承Module类,在第一帧所拽写的代码可以通过实例化后来访问,比如下面贴出的"控制台源码"就是如此写的 如果需要提供特殊环境等,可以继承Module撰写,比如PopModule,控制台的父类就是PopModule,在控制台的源码中,我们可以看得到他直接访问了window属性,得到的就是控制台所在的窗口对象 Window类实现了基本窗口操作,比如拖拽,关闭,显示等,与WindowManager是配套使用 如果需要更复杂的窗口,可以继承Window类撰写,比如PopWindow,FixedWindow类的父类就是PopWindow,在FixedWindow中,我们只需要把PopWindow的状态和模式定死在window和fixed就可以了,而PopWindow本来就是一个普通的窗口,因此创建Create窗口的时候,直接使用PopWindow即可创建一个普通的窗口,在PopWindow中,默认窗口的状态和模式都为window 核心包是另外一个公司做的。核心代码是反编译过来的。代码经过测试能正常运行。 此代码仅供学习,请勿传播。 flash版窗体系统demo观看地址:http://www.xiaos8.com/uploads/flash/window.swf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值