项目配置 - Project

# Project 在Auto.js Pro中,我们有时不仅需要运行单文件,还有运行项目的需求。所谓项目,就是一个包含配置、代码文件、资源文件(图片等)的文件夹。 在Auto.js Pro中可以在主页新建项目,有多种项目模块可供选择(Pro 8.7以上)。 ## project.json `project.json`文件用于配置项目的相关参数,比如主文件、启动图、包名等信息。 | 参数名称 | 意义 | 类型 | 默认值 | | -------------- | ---- | ---- | ------ | | androidResources | 安卓资源,参见[androidResources](/zh-cn/project?id=androidresources) | Object | {<br> "resDir": "res",<br> "manifest": "AndroidManifest.xml"<br>} | | build | 自动生成的构建信息,无需修改,参见[build](/zh-cn/project?id=build) | Object | | | assets | 保留字段,暂时没有作用 | Array<String> | [] | | encryptLevel | 加密级别 0-不加密, 1-本地加密, 2-在线加密(仅在8.7以上版本支持) | number | 0 | | icon | 桌面图标 | string | "icons/icon.png" | | ignore | 从VSCode中同步项目时的忽略文件 | Array | ["build"] | | launchConfig | 启动配置,参见[launchConfig](/zh-cn/project?id=launchconfig) | Object | | | main | 入口文件 | string | "main.js" | | name | app名字 | string | "" | | optimization | 优化配置,参见[optimization](/zh-cn/project?id=optimization) | Object | | | packageName | 包名,必须符合Android包名规范,另外上传商店时包名必须唯一 | string | "" | | permissionConfig | 权限配置,参见[permissionConfig](/zh-cn/project?id=permissionconfig) | Object | {<br> "manifestPermissions": [],<br> "requestListOnStartup": []<br>} | | publish | 发布/上传商店配置,参见[publish](/zh-cn/project?id=publish) | Object | | | useFeatures | 特性<br>**`continuation`** - 是否使用协程特性,参见示例->协程 | Array<String> | [] | | versionCode | 版本号 | number | 1 | | versionName | 给用户看的版本名称 | string | "1.0.0" | 完整配置实例: ```js { "androidResources": { "resDir": "res", "manifest": "AndroidManifest.xml" }, "assets": [], "build": { "build_id": "6F47F367-1", "build_number": 1, "build_time": 1615553004812, "release": true }, "encryptLevel": 0, "useFeatures": [], "icon": "res/icon.png", "ignore": ["build"], "launchConfig": { "displaySplash": true, "hideLogs": false, "splashIcon": "res/splashIcon.png", "splashLayoutXml": "splash.xml", "splashText": "Powered by Auto.js Pro", "stableMode": false }, "main": "main.js", "name": "Shape3.0", "optimization": { "removeOpenCv": true, "unusedResources": true }, "packageName": "com.suzy.rippledrawable", "permissionConfig": { "manifestPermissions": ["android.permission.WRITE_EXTERNAL_STORAGE"], "requestListOnStartup": ["android.permission.WRITE_EXTERNAL_STORAGE"] }, "publish": { "category": "其他", "details": "控件描边、渐变、水波纹、文字渐变", "maxAutoJsVersion": -1, "minAutoJsVersion": -1, "maxProVersion": 8059999, "minProVersion": 8050000, "minSdkVersion": 2, "permissions": [], "summary": "控件描边、渐变、水波纹、文字渐变", "tags": [] }, "scripts": {}, "versionCode": 1, "versionName": "1.0.0" } ``` 最小配置实例: ```js { "name": "新建项目", "main": "main.js", "ignore": [ "build" ], "packageName": "com.example", "versionName": "1.0.0", "versionCode": 1 } ``` ### androidResources 用于配置Android原生界面的参数,参见示例->复杂界面->Android 原生界面。 | 参数名称 | 意义 | 类型 | 默认值 | | -------------- | ---- | ---- | ------ | | resDir | Android资源文件夹 | string | "res" | | manifest | AndroidManifest.xml的文件路径 | string | "AndroidManifest.xml" | ### build 自动生成的构建信息,包含构建时间、构建号等,请勿修改。 打包软件中,将根据这里的信息判断是否需要解压覆盖安装包的文件到数据路径。(每次打包后这里的信心会更新,因此安装后可以自动更新本地数据中的项目文件) | 参数名称 | 意义 | 类型 | 默认值 | | -------------- | ---- | ---- | ------ | | build_id | 自动生成的构建id | string | "" | | build_number | 构建号,每次构建自增1 | number | 1 | | build_time | 上次构建时间 | number | 当前13位时间戳 | | release | 是否为打包后项目,为自动生成的字段,不需要修改 | boolean | false | ### launchConfig 打包后的相关启动配置。 | 参数名称 | 意义 | 类型 | 默认值 | | -------------- | ---- | ---- | ------ | | displaySplash | 打包后是否显示启动图(即使设置为false,打包后第一次也仍然会显示启动图) | boolean | true | | hideLogs | 打包后是否隐藏日志界面 | boolean | false | | splashIcon | 打包后启动界面图标 | string | "icons/splashIcon.png" | | splashLayoutXml | 启动图xml,用于打包后自定义启动图,参见示例->项目与打包->自定义启动图 (8.5以上版本) | string | "splash.xml" | | splashText | 打包后启动界面文本 | string | "Powered by Auto.js Pro" | | stableMode | 打包后是否以稳定模式运行 | boolean | false | ### permissionConfig > Pro 8.8.1新增 自定义权限配置,包括应用打包后声明的权限列表和启动时自动申请的权限列表。 也可以在打包界面中使用权限配置修改。 | 参数名称 | 意义 | 类型 | 默认值 | | -------------- | ---- | ---- | ------ | | manifestPermissions | 打包后应用声明的权限列表。为了兼容旧版本配置,如果该字段为null则默认为122个自带权限。 | Array<string> | null | | requestListOnStartup | 应用启动时自动申请的权限列表,权限务必包含在manifestPermissions中,否则会无法申请 | Array<string> | ["android.permission.WRITE_EXTERNAL_STORAGE"] | 全部权限列表参见Android官方文档:[Manifest.permission](https://developer.android.google.cn/reference/android/Manifest.permission) ### publish 上传商店发布项目的相关配置。 | 参数名称 | 意义 | 类型 | 默认值 | | -------------- | ---- | ---- | ------ | | maxAutoJsVersion | 支持的最大autojs版本号 | number | 0 | | maxProVersion | 支持的最大autojspro版本号 | number | 0 | | minAutoJsVersion | 支持的最小autojs版本号 | number | 0 | | minProVersion | 支持的最大autojspro版本号 | number | 0 | | minSdkVersion | 支持的最小安卓版本 | number | 0 | | category | 项目类别,用于发布在商店时作为分类 | string | "其他" | | details | 项目详细描述,用于发布在商店时作为项目详情 | string | "" | | permissions | 权限列表,比如"root",暂时没有作用 | Array<Stirng> | [] | | summary | 脚本功能简介 | string | "" | | tags | 脚本标签,由于商店还没有标签过滤功能,暂时没有作用 | Array<String> | [] | ### optimization 优化配置。目前用于打包时缩小体积。 | 参数名称 | 意义 | 类型 | 默认值 | | -------------- | ---- | ---- | ------ | | removeOpenCv | 不需要图色模块 | boolean | false | | unusedResources | 不需要内置图标 | boolean | false | ## ignore配置 > Pro 8.7.6新增 ignore配置文件类似于`.gitignore`,用于配置Auto.js Pro处理打包、加密等忽略的文件。 ignore文件的规则和`.gitignore`相同,比如: ``` # / 表示 当前文件所在的目录 # 忽略public下的所有目录及文件 /public/ #不忽略/public/assets,就是特例的意思,assets文件不忽略 !/public/assets # 忽略具体的文件 index.js # 忽略所有的js文件 *.js # 忽略 a.js b.js [ab].js # 匹配规则和linux文件匹配一样 # 以斜杠“/”开头表示目录 # 以星号“*”通配多个字符 # 以问号“?”通配单个字符 # 以方括号“[]”包含单个字符的匹配列表 # 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录 ``` ### .autojs.source.ignore 文件路径:项目文件夹下`.autojs.source.ignore`文件。 该文件配置的规则所匹配的文件,将不视为Auto.js Pro的JavaScript源码文件,不参与加密过程。 例如有些js文件是用于Web中加载的,不希望在打包时将其加密,可以配置该文件来忽略。 ### .autojs.build.ignore 文件路径:项目文件夹下`.autojs.build.ignore`文件。 该文件配置的规则所匹配的文件,将不参与Auto.js Pro的打包apk过程,最终生成的apk中,将不包含指定的文件。 例如有时node_modules仅在开发时使用,最终打包时已经通过webpack等工具打包为单文件,则可以配置忽略node_modules文件夹。