appcan-android

appcan-android引擎

QQ交流群:173758265

生成引擎包步骤:

新建Android Studio工程Engine_AppCan

clone 引擎代码到工程Engine_AppCan

git clone https://github.com/AppCanOpenSource/appcan-android.git

编辑工程根目录下的settings.gradle,在下面添加一行:

include ':appcan-android:Engine'

按需修改引擎代码

编辑appcan-android/en_baseEngineProject/androidEngine.xml里面的description信息,其他的不要改动

在Android Studio自带的Terminal输入

gradle buildEngine

编译完成后,生成的引擎包在appcan-android/Engine/build/outputs/engine目录下

目录结构

├── Engine

│   ├── Engine.iml

│   ├── build

│   ├── build.gradle

│   ├── libs 公用lib

│   ├── proguard.pro 混淆文件

│   ├── project.properties

│   └── src

├── LICENSE

├── README.md

├── appcan-android.iml

├── en_baseEngineProject

│   ├── WebkitCorePalm

│   └── androidEngine.xml

└── gradle-plugin

└── appcan-build-engine.jar

Engine:引擎工程,该工程的最终作用就是生成引擎的jar

当有除了java代码之外的改动,如添加图片资源,添加或修改布局文件,都需要同步改动到WebkitCorePalm(重要)

en_baseEngineProject/WebkitCorePalm:最终打包使用的工程,除了上面说的需要从Engine工程同步的内容,其他信息不要改动,

Engine/build:目录结构如下

├── appcan

│   ├── crosswalk

│ ├── x5

│   └── system

├── generated

├── intermediates

├── outputs

│   ├── engine

│   ├── jar

│   ├── aar

│   ├── logs

│   └── mapping

└── tmp

appcan:生成引擎时产生的临时文件

outputs/engine:引擎输出目录

outputs/jar:Enginemoudle编译出来的jar,以-un-proguard.jar结尾的为未混淆的jar,其他为混淆过的jar

outputs/aar:Enginemodule生成的aar

关于混淆

混淆文件为:appcan-android/Engine/proguard.pro

混淆只用于混淆Engine中的java文件 排除混淆

排除混淆

提供给JS调用的接口,请在方法添加@AppCanAPI注解,混淆时会排除

提供给插件调用或不希望被混淆的,请添加@Keep注解,混淆时会排除

AppCan Gradle插件

一般情况下生成引擎只需要调用gradle buildEngine 就可以生成所有的引擎包,如果有其他需要可以调用其他的task。目前提供的task有:

build{Flavor}Engine:生成对应flavor的引擎

如输出crosswalk引擎

gradle buildCrosswalkEngine

输出所有flavor的引擎

gradle buildEngine

build{Flavor}JarTemp:生成对应flavor的jar,不进行混淆

如输出crosswalk引擎的jar

gradle buildCrosswalkJarTemp

如果要输出所有flavor的jar

gradle buildJarTemp

build{Flavor}Jar:生成对应flavor的jar,并且进行混淆

如输出混淆过的crosswalk引擎jar

gradle buildCrosswalkJar

如果要输出所有flavor的jar

gradle buildJar

build{Flavor}Aar:生成对应flavor的aar

如输出混淆过的System引擎aar

gradle buildSystemAar

如果要输出所有flavor的aar

gradle buildAar

说明:生成aar需要将Engine目录下的build.gradle文件中的

apply plugin: 'com.android.applicaiton'

替换成

apply plugin: 'com.android.library'

并注释掉

applicationId 'org.zywx.wbpalmstar.widgetone.uex'

已经适配到AndroidStudio3.5.0开发环境

后续更高的gradle版本,升级原理相同,本文档更新不及时的话,开发者可以自行更新工程配置。但是gradle版本更新过高可能会导致引擎出包脚本使用的gradle插件不兼容,需要等待后续进行适配。目前经过完整测试的是可以适配到3.5.0。

在3.5.0遇到Gradle插件和脚本运行出错,是因为工程中的AppCanGradle插件未做高版本的适配。有两种方式解决:

1. 降级gradle

目前,本工程的默认配置为适配AS3.5.0,Gradle版本为5.4.1,AndroidGradle构建插件版本为3.5.0。如果开发者没有升级AndroidStudio,按照以下操作降级:

修改Engine/gradle/wrapper/gradle-wrapper.properties,其中版本改为4.1;

修改build.gradle中的classpath 'org.appcan.gradle.plugins:appcan-gradle-plugin:2.3.1',其中2.3.1修改为2.2.4。

经过以上操作后,理论上可以编译通过。不过还是建议升级AS。

2. 依赖新版AppCanGradle插件

修改Engine/gradle/wrapper/gradle-wrapper.properties,其中版本改为5.4.1;

修改Engine/build.gradle文件中。其中,repositories增加一个github的maven库,dependencies中将原来的依赖本地的gradle插件改为依赖线上的,版本目前是2.3.1,可以在此仓库关注更新 https://github.com/android-plugin/mvn-repo。修改部分参考下面:

buildscript {

repositories {

google()

jcenter()

maven {

url 'https://raw.githubusercontent.com/android-plugin/mvn-repo/master/'

}

}

dependencies {

classpath 'com.android.tools.build:gradle:3.5.0'

// classpath fileTree(dir: '../gradle-plugin', include: '*.jar')

classpath 'org.appcan.gradle.plugins:appcan-gradle-plugin:2.3.1'

}

}

dependencies中com.android.tools.build:gradle设置为3.0.1或更高版本之后,需要在所有的repositories中增加google(),否则会找不到Android新版的官方gradle相关插件库而报错;

若buildToolsVersion改为26或更高后,还会要求修改flavor的定义,如下修改即可:

//声明flavorDimension

flavorDimensions "kernel"

productFlavors {

crosswalk {

dimension "kernel"

}

system {

dimension "kernel"

}

x5 {

dimension "kernel"

}

}

插件开发gradle依赖引擎配置

repositories中增加下面的maven地址:

repositories {

maven {

url 'https://raw.githubusercontent.com/android-plugin/mvn-repo/master/'

}

}

dependencies中增加依赖包。其中,版本号+号是指随便获取一个版本(不一定是最新版本)。如果要指定版本号,可以将+号改为4.0.0,或4.3.21等等。未来还会有更多版本。

dependencies {

implementation 'org.appcan:engine:+:systemRelease@aar'//依赖远程引擎

}

can软件android,appcan-android相关推荐

  1. android闹钟例子,自己软件中调用android系统闹钟

    [实例简介] 自己软件中调用android系统闹钟! 综合网上资料,得来 [实例截图] [核心代码] 54ba60f3-fa09-4e61-b3ab-c4fca16d07b2 └── CallSyst ...

  2. android老人字体变大,适合老年人用的安卓手机软件 一键让Android字体变大

    话说现在安卓手机已经非常的普及了,而且使用起来确实很方便,可是对于老年人来说,而且Android默认的小字体实在是个莫大的折磨,那么有没有什么软件可以使Android字体变大呢?嘿嘿,今天小编就为大家 ...

  3. 海海软件发布HHMeet Android安卓测试版- 加密保护Zoom视频会议-手机直播防翻录

    2021年12月6日海海软件发布 "HHMeet Android安卓(测试版)",HHMeet安卓版帮助安卓手机和平板用户更方便的访问经DRM-X 4.0加密保护的Zoom视频直播 ...

  4. android 投影ios,五种良心屏幕投影软件,将Android和iOS投影到大屏幕

    随着智能手机的普及,越来越多的人习惯于在手机上观看照片和视频,在会议中显示资料或玩手机游戏. 在玩手机游戏时,小于计算机大屏幕的视野已成为最大的限制,因此许选择使用投影软件将手机屏幕投射到计算机或电视 ...

  5. rar for android 中文版,安卓解压缩软件 Winrar for Android 6.02 中文专业版

    Winrar是PC时代用户最多的压缩 Winrar功能: 支持创建RAR和ZIP压缩文件以及解压RAR, RAR5, ZIP, TAR, GZ, BZ2, XZ, 7z, ISO, ARJ等格式的文件 ...

  6. android 社交软件开发,基于Android的移动端社交软件的设计与实现

    摘要: 随着移动互联技术以及移动社交的快速发展,市场对移动互联社交软件的需求越来越强烈.为了满足日益增长的移动社交软件的需求的要求,提高软件的服务质量,设计开发一套移动社交软件很有必要.在这样的背景下 ...

  7. Android配置----Android开发环境搭建

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  8. 【Android】 Android中适配器简介

    1. BaseAdapter的使用实例 BaseAdapter baseAdapter = new BaseAdapter() {@Overridepublic View getView(int po ...

  9. 【Android】 Android中ListView使用详解

    ListView的使用方法  ListView是Android软件开发中非常重要组件之一,基本上是个软件基本都会使用ListView ,今天我通过一个demo来教大家怎么样使用ListView组件 绘 ...

  10. 【Android】Android网络编程概述

    Android网络编程概述 原文来自:http://blog.csdn.net/kieven2008/article/details/8210737 首先,应该了解的几个问题: 1)Android平台 ...

最新文章

  1. 2021年春季学期-信号与系统-第二次作业参考答案-第七小题
  2. 10月网民上网高峰时段为晚上8点 比例升至6.64%
  3. c语言计算机二级改错题类型,C语言计算机二级改错题
  4. 天池 在线编程 矩阵还原(前缀和)
  5. Nginx(六):配置nginx高可用集群
  6. java pc端软件抓包,如何通过抓包工具fiddler获取java程序的http请求
  7. override和overload的小笔记
  8. 社区活动 | Apache Flink 1.9 版本即将发布,新版本有哪些新特性?
  9. kivy python 读取oracle数据库_python app (kivy)-与小型数据库连接,实现注册登录操作...
  10. 流水账——利用MFC开发的小软件
  11. Typecho Fancybox 给文章图片添加灯箱效果
  12. tcp_sock_struct
  13. AutoHotKey:Shift+ijkl实现方向键
  14. 计算机桌面输入法怎么恢复,电脑桌面系统输入法不见了?输入法不见了找回方法/步骤...
  15. Code Project精彩系列二
  16. 集合之ArrayDeque
  17. 机器人开始“杀人”了
  18. StarLink星座带宽以及对美国潜在用户群的评估
  19. E.Okabe and El Psy Kongroo
  20. 跟着吴坚鸿学单片机——第1天:吴坚鸿谈初学单片机的误区

热门文章

  1. 项目经理也分三六九等,初级项目经理和高级项目经理的区别
  2. flv转mp4视频格式转码教程
  3. 基于Arch的live系统
  4. Java聊天室——一对一模式
  5. 【灵修】应对“三季人”,多活十余年(2012-1-14)
  6. python矩阵运算法则_python怎么进行矩阵运算?
  7. 合肥学院计算机论文,合肥学院本科生毕业论文.doc
  8. 推荐系统用户反馈延迟新解法!阿里提出CVR无偏估计算法
  9. 离散型Hopfield神经网络(DHNN)
  10. Python 网页下载文件