了解过Android开发的同学们对Java语言一定不会陌生,在原生的Android开发中我们几乎可以用Java实现任何功能,甚至通过Java的jni调用一些基于C/C++所写的库。
那么ai中有没有可能实现内嵌Java代码的方法呢?答案肯定是没有的啦,毕竟Java代码变成能够被计算机(Java虚拟机)所识别的代码(字节码)中一个必不可少的步骤就是编译,一般java代码的编译需要编译器来完成,在android上,能够直接加载执行的是一个叫做dex的文件,它实际上是将编译出的一个个字节码文件打包到了一个文件中,由Dalvik虚拟机所加载执行,编译工作需要在服务器或者用户的个人电脑上完成。aix扩展组件在ai伴侣上的动态加载实际上就是动态加载dex的原理,而动态加载dex文件在JavaReflector中也完全实现,参见LoadDex块。
不过,虽然不能直接在java中内嵌java代码,但是现在我们现在可以借助JavaReflector组件实现ai中调用Java的API,Java API虽然是由java编写的,但是如果你不懂java语言的语法,也没有关系,只需要我带领大家学会阅读Java API文档与Android API文档,来带领大家写出JavaReflector程序,从而实现不需要写拓展组件也能够调用android sdk所提供的api了。
在这里建议大家收藏这两个网址:
JavaAPI文档:https://tool.oschina.net/uploads/apidocs/jdk-zh/
AndroidAPI文档https://tool.oschina.net/uploads/apidocs/android/reference/packages.html
而接下来,的教程中我们将逐步教大家使用JavaReflector组件,有Java基础的同学相信很快就会上手,没有学过Java的同学建议先学习一下Java中数据类型,数组,对象等基本概念,当然我也会尽量让大家零基础就能够学会本组件,从而能够在AppInventor中扩展AppInventor更多高级好玩的功能。
注意:本教程中的JavaReflector组件暂时还不支持以aix的形式发布,目前仅在wxbit平台wxbit中上线。
如图,该组件存在于系统增强目录下,下一篇将介绍JavaReflec所需要的一些基础概念。
![](https://img.haomeiwen.com/i4445592/ecd3fbca7ca1a446.png)
网友评论