造成ANE坑的原因
ane之所以难学,因为其操作的不友好性造成的,需要手动编写两三个相关联的xml配置文件,并且adt命令的参数较多。每一个都没有比较详尽的介绍.官方帮助文档中又没有针对环境的例子,所以连hello world都很难在短时间内实现出来。另外针对后面的例如引用外部jar,以及呈现android端的布局文件也没有进行说明。等等
实现ANE步骤
- 安装flashbuilder
- 安装android studio
- 用android studio编写第一个hello world, 然后改成库项目
- 引入 FlashRuntimeExtensions.jar库
- 编写as接口
- 编写两个xml文件 extension.xml phatform.xml
extension.xml:
<extension xmlns="http://ns.adobe.com/air/extension/19.0">
<id>spiano.com.helloworld.ane</id>
<versionNumber>0.0.1</versionNumber>
<platforms>
<platform name="Android-ARM">
<applicationDeployment>
<nativeLibrary>classes.jar</nativeLibrary>
<initializer>spiano.com.helloworld.ane</initializer>
</applicationDeployment>
</platform>
</platforms>
</extension>
phatform.xml
<platform xmlns="http://ns.adobe.com/air/extension/19.0">
<packagedDependencies>
<packagedDependency>android-support-v4.jar</packagedDependency>
<packagedDependency>android-support-v7.jar</packagedDependency>
<packagedDependency>constraint-layout.jar</packagedDependency>
</packagedDependencies>
<packagedResources>
<packagedResource>
<packageName>com.android.support</packageName>
<folderName>android-res</folderName>
</packagedResource>
<packagedResource>
<packageName>spiano.com.helloworld</packageName>
<folderName>java-res</folderName>
</packagedResource>
<packagedResource>
<packageName>com.android.support.constraint</packageName>
<folderName>layout-res</folderName>
</packagedResource>
</packagedResources>
</platform>
- 配置build.bat文件
rem 所有的路径在使用时,最好都加上双引号
rem 以下几个地址属于系统参数 java所在的地址 adt.jar所在的地址
set java_directory=C:\Program Files (x86)\Java\jre1.8.0_191\bin
set adt_directory=C:\Program Files\Adobe\Adobe Flash Builder 4.7 (64 Bit)\eclipse\plugins\com.adobe.flash.compiler_4.7.0.349722\AIRSDK\lib
rem 文件输出路径
set root_directory=E:\output
rem 最终要输出的地址
set library_directory=%root_directory%\out
rem 可以把java输出的文件都放在这里
set native_directory=%root_directory%\java
rem 需要把swc中的library.swf拿出来放在这个目录下
set SWF_directory=%root_directory%\as
rem sdk所需要的支持库
set SDK_directory=%root_directory%\sdk
rem as端输出的swf文件地址
set library_SWC=%SWF_directory%\mycallJava.swc
rem 密钥文件配置及密码
set signing_options=-tsa none -storetype PKCS12 -keystore %root_directory%\a.p12
set storepass=2923074
rem 输出ane文件
set dest_ANE=%library_directory%\FlashLib.ane
rem 配置文件,这个文件需要按照格式创建
set extension_XML=%root_directory%\extension.xml
rem 资源配置xml文件 -platformoption
"%java_directory%"\java -jar "%adt_directory%"\adt.jar -package %signing_options% -storepass %storepass% -target ane %dest_ANE% %extension_XML% -swc %library_SWC% -platform Android-ARM -platformoptions platform.xml -C %SWF_directory% library.swf -C %SDK_directory% . -C %native_directory% .
- 执行build.bat生成 ane
- 在flashbuilder中编写测试as项目,发布到手机中进行调试。
微信:chinassx
时间:2019.1.17