suiyuan 发表于 2022-6-29 20:03:43

随缘_AS_E4A类库开发工具+辅助插件

本帖最后由 suiyuan 于 2022-6-29 20:03 编辑

package com.e4a.compile;

import com.windows.e4a.GenerateItem;
import com.windows.e4a.file.CanonicalFile;
import com.windows.e4a.utils.PinyinUtil;
import com.windows.e4a.工程属性;
import com.windows.e4a.系统工具;
import com.windows.e4a.附加信息;

import org.junit.Test;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
* ******************************************************
* so文件路径默认如:
* src/main/jniLibs
* src/libs
* <p>
* jar依赖默认路径如:libs/xxxx.jar
* assets默认路径 如:src/main/assets
* <p>
* <p>
* res资源注意:
* 资源全部会被打包, 请注意你的资源是否有用;
* 你不需要管为什么会全部打包,那肯定是支持了;
* 注意资源名称不要与E4A默认资源名称重复
* 如 style.xml string.xml 注意修改名称
* <p>
* ******************************************************
* 所有类名不要包含"类库二字"
* 所有依赖类名或包名切勿与类库名称
* ******************************************************
* <p>
* 支持自动导入依赖!
* 自动删除不识别的注解
* *********************************************************
* 如果打包后 E4A报R.java 错误,则需要检查依赖资源路径是否存在或xml中又为导入的依赖
* **************************************************************************
* E4A类库快速开发依赖包   当前版本:4.5
* <p>
* __________________作者:随缘
* __________________QQ:874334395 或 531772873
* <p>
* <p>
* <p>
* 4.5: 更新内容
* 1:默认全包扫描
* 2:一个module一个类库
* 3:使用E4A内置jar依赖
* 4:真实模拟E4A窗口环境
* 5:这可能是最后一个版本了
* <p>
* <p>
* 注意 : values资源规范:
* 1.节点不能与E4A默认节点重复
* 2.资源文件命名不得与E4A默认文件同名
* 3. e4astyle.xmlstrings.xmlstyles.xml color.xmlE4ARuntime.jar这些命名全部会被忽略打包
* <p>
* 特别提醒:需要讲此类放入单元测试(test)目录下,否则无法运行
*/
public class 类库打包test {

    static {
      工程属性.E4A根目录 = "C:/E4A";
      工程属性.类库名称 = "随缘_广告";
      工程属性.类库类型 = 工程属性.可视库;
      工程属性.类库版本 = 2.0;
      工程属性.作者QQ = "874334395";
      工程属性.类库作者 = "随缘";
      工程属性.MODULE_NAME = PinyinUtil.getPinyin(工程属性.类库名称, "");
      工程属性.自定义属性名称1 = null;
      工程属性.自定义属性名称2 = null;
      工程属性.自定义属性名称3 = null;
      工程属性.属性区图标_bmp = null;
      工程属性.组件区图标_bmp = null;
      工程属性.设计区图标_bmp = null;
      工程属性.自动安装类库 = true;
      工程属性.自动打开源码 = true;
      //如果有附加信息 则必须打开
      工程属性.解析附加信息 = true;
      //合并依赖:指把所有项目依赖jar合并成一个jar文件,优点:如果别人想提取你的依赖,那么就得整个提走(如果不会拆分可能引起异常)
      //                                        缺点:合并后也不便于个人依赖更新
      工程属性.合并依赖 = false;
    }

    @Test
    public void 合并jar包() throws Exception {
      //注意合并JAR会进行覆盖操作,此实例表示a.jar覆盖b.jar,c覆盖a,b       以此类推
      List<File> jarList = new ArrayList<>();
      jarList.add(new File("D:/abc/b.jar"));
      jarList.add(new File("D:/abc/a.jar"));
      jarList.add(new File("D:/abc/c.jar"));
      GenerateItem.jar合并(new File("D:/abc/E4ARuntime.jar"), jarList);
    }


    @Test
    public void 生成RJAVA() throws Exception {
      //为类库生成R.java
      GenerateItem.生成Rjava();
    }


    @Test
    public void 打开类库安装目录() throws Exception {
      GenerateItem.打开类库安装目录();
    }


    @Test
    public void arr垃圾清理() throws Exception {
      GenerateItem.Aar垃圾清理();
    }

    @Test
    public void aar解压() throws Exception {
      GenerateItem.解压aar(工程属性.MODULE_NAME);
    }

    @Test
    public void 打开ELP() throws Exception {
      GenerateItem.打开ELP();
    }

    @Test
    public void 创建E4A窗口环境() throws Exception {
      GenerateItem.创建E4A窗口环境();
    }

    /**
   * 导入elp源码
   * 注意:导入后需要手动修改工程属性:否则打包类找不到类库目录
   */
    @Test
    public void importProject() throws Exception {
//      CanonicalFile.导入项目(new File("D:/xxx.elp"));
    }

    /**
   * 创建类库项目
   */
    @Test
    public void create() throws Exception {
      CanonicalFile.创建项目();
    }

    @Test
    public void 编译类库() {
      //处理aar
      //GenerateItem.解压aar(MODULE_NAME);
      //可以选择
      try {
            GenerateItem.解压aar(工程属性.MODULE_NAME);
            GenerateItem.set附加信息(new 附加信息() {
                //如果检测到附加信息则会回调此事件
                @Override
                public String Permission附加(String Permission信息) {
                  return Permission信息;
                }

                //如果检测到附加信息则会回调此事件
                @Override
                public String Manifest附加(String Manifest信息) {
                  return Manifest信息;
                }

                //如果检测到附加信息则会回调此事件
                @Override
                public String mainActivity附加(String mainActivity信息) {
                  return mainActivity信息;
                }
            });
            GenerateItem.开始打包();
            GenerateItem.Aar垃圾清理();
            //注意以下是垃圾回收代码,一般情况是需要打开的,如果你不能确保你的类库是否有错误请不要打开!打开后控制面板报错无法通过鼠标点击进入错误区
//            GenerateItem.删除文件或目录_CMD(系统工具.路径_写出路径);
//            GenerateItem.删除文件或目录_CMD(系统工具.路径_MODULE_BUILD_GEN);
//            GenerateItem.删除文件或目录_CMD(系统工具.路径_MODULE_BUILD_SRC);
//            GenerateItem.删除文件或目录_CMD(系统工具.路径_MODULE_BUILD_类库集NAME);
            打开类库安装目录();
      } catch (Exception e) {
            e.printStackTrace();
      }
    }
}


易8643501 发表于 2022-6-30 01:16:23

易如意中文编程学习交流论坛有你更精彩~

116333333 发表于 2022-7-6 08:26:46

易如意中文编程学习交流论坛有你更精彩~

pq9999 发表于 2022-7-30 08:02:10

而是他的衣服该回家看了看

hlswuwu 发表于 2022-7-31 17:37:59

不错不错
页: [1]
查看完整版本: 随缘_AS_E4A类库开发工具+辅助插件