{"id":19965622,"url":"https://github.com/tencent/rapidview","last_synced_at":"2025-05-16T19:07:42.415Z","repository":{"id":26420249,"uuid":"107961570","full_name":"Tencent/RapidView","owner":"Tencent","description":"RapidView is an android ui and lightapp development framework","archived":false,"fork":false,"pushed_at":"2023-04-07T11:28:05.000Z","size":7354,"stargazers_count":977,"open_issues_count":9,"forks_count":101,"subscribers_count":43,"default_branch":"master","last_synced_at":"2025-04-12T17:50:17.207Z","etag":null,"topics":["android","dynamic","lightapp","ui-framework"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tencent.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-23T09:39:08.000Z","updated_at":"2025-02-05T09:01:48.000Z","dependencies_parsed_at":"2024-11-13T02:41:56.556Z","dependency_job_id":null,"html_url":"https://github.com/Tencent/RapidView","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2FRapidView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2FRapidView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2FRapidView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2FRapidView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tencent","download_url":"https://codeload.github.com/Tencent/RapidView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254592395,"owners_count":22097013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","dynamic","lightapp","ui-framework"],"created_at":"2024-11-13T02:29:48.836Z","updated_at":"2025-05-16T19:07:42.391Z","avatar_url":"https://github.com/Tencent.png","language":"Java","readme":"# RapidView\n\n\u003eRapidView是一套用于开发Android客户端界面、逻辑以及功能的开发组件。布局文件(XML)及逻辑文件(Lua)可以运行时执行，主要用以解决Android客户端界面、逻辑快速更新以及快速开发的诉求。RapidView的XML语法规则与Android原生XML类似，而写逻辑的Lua部分除语言语法规则外，可以直接使用我们提供的Java API以及Android原生API，因此熟悉Android客户端开发的开发者上手成本会非常小。\n\u003e\n\u003e除了解决动态更新问题外，RapidView希望Android开发者能够以更快的速度开发产品功能需求，因此我们在语法和开发方式上做了一些改变，期望开发者能够实现：小功能极速开发、大功能极速上线。\n\u003e\n\u003eRapidView希望为开发者带来更小的安装包增量以及更加简单、易于维护和修改的组件库，RapidView的代码组件约180KB(30KB组件+150KB luaj)。\n\n## 组件特性\n\u003e* 运行时加载，布局、逻辑可动态刷新\n\u003e\n\u003e* 无需编译，所见即所得，开发效率更高\n\u003e\n\u003e* 极小的安装包增量\n\u003e\n\u003e* Android开发者低上手成本\n\u003e\n\u003e* 与NATIVE开发体验相同\n\n## 快速上手\n\n\u003e我们为开发者提供了一个简单的DEMO，以及一个简易调试工具Rapid Studio。Rapid Studio除了支持简单的XML语法校验，Lua语法高亮以及自动补全外，还可以实现实时调试，这将极大缩短开发者的调试成本。除了这个exe工具外，我们还提供了具有类似功能的Visual Studio Code插件。在VS Code商店中搜索：Rapid Studio可以找到这个插件。\n\n\n\n### 工程引入RapidView\n\n#### 初始化RapidView\n将源码添加到工程目录下，在Application类的onCreate方法中添加如下代码进行初始化：\n\n`RapidPool.getInstance().initialize(this, null); `\n\n如果编译时需要混淆代码，请将*.rapidview.deobfuscated目录保持非混淆状态\n\n#### 加载RapidView\n\n写一张简单的XML布局文件，保存在assets/rapidview目录下。打开RapidConfig.java，在VIEW{}的枚举中分配一个视图名，在Map中与XML关联。\n\nXML布局文件\n```\n\u003crelativelayout width=\"match_parent\" height=\"match_parent\" backgroundcolor=\"ffabcdef\"\u003e\n\u003c/relativelayout\u003e\n```\n\nRapidConfig.java\n```\n    /**VIEW列表，此处配置仅为防止重名，便于索引。**/\n    public enum VIEW{\n        native_demo_view, //Demo视图\n    }\n\n    /** VIEW和NaitveXML的映射关系，当View不存在服务端下发的XML时，寻找本地XML作为默认布局 **/\n    static{\n        try{\n            msMapViewNaitve.put(RapidConfig.VIEW.native_demo_view.toString(), \"demo_view.xml\");\n        }\n        catch (Exception e){\n            e.printStackTrace();\n        }\n\n```\n\n在需要加载RapidView的地方插入如下代码，即完成了简单的RapidView加载\n\n```\n        mRapidView = RapidLoader.load(\n                RapidConfig.VIEW.native_demo_view.toString(),\n                HandlerUtils.getMainHandler(),\n                this,\n                RelativeLayoutParams.class,\n                map,\n                null);\n\n        setContentView(mRapidView.getView(), mRapidView.getParser().getParams().getLayoutParams());\n        \n```\n\n#### 开发与调试\n\n打开RapidConfig.java，将一个名为DEBUG_MODE的静态boolean成员的值改为true并在本地重新编译并安装到手机。打开Rapid Studio调试小工具，点击文件-\u003e打开，选择工程下assets/rapidview目录，打开。\n\n```\n    /**DEBUG_MODE\n     * 调试模式是否开启，一般发布时需要关闭。开启调试模式后，可以在rapiddebug目录中配置调试文件。调试文件\n     * 实时，并以最高优先级生效。强烈推荐使用RapdiView皮肤引擎专用调试工具RapidStudio Studio调试界面，调\n     * 试时需要安装开启调试模式的包。**/\n    public final static boolean DEBUG_MODE = true;\n```\n\n**工具目录下有一个rapid_config.ini的配置，工程目录中utils目录下有一个FileUtil的文件，这两个地方配置的目录要对应起来，否则调试会失败。**\n\n\n![](http://cms.gtimg.com/android_cms/gzskin/0620bf5cd8124a83e393f07886c89f6a.png)\n\n修改XML中的任意可见参数，如backgroundcolor，按ctrl+s保存，观察到log中提示“[100%]xxx”，表明文件被push到手机当中，重新加载当前activity（返回重新进入），查看效果。\n\n### Rapid Studio\n\n#### Visual Studio Code插件\n\n如果打算使用Visual Studio Code，可在插件商店中搜索Rapid Studio，相关介绍链接：\n\n[English Document](https://github.com/Tencent/RapidView/blob/master/rapidstudio_vscode_extension/rapidstudio/README.md)\n\n[中文文档](https://github.com/YongdongHe/RapidView/blob/master/rapidstudio_vscode_extension/rapidstudio/resource/README_CHINESE.md)\n\n#### Windows工具\n\n点击[下载链接](http://cms.gtimg.com/android_cms/gzopen/000d422874e9a4e5680d34a905f85352.zip)下载Rapid Studio工具包。\n\n## 许可协议（License）\n\nRapidView使用 MIT 许可协议， 详见[License](https://github.com/Tencent/RapidView/blob/master/License.txt)文件。\n\n\n## 个人信息保护规则\n\nRapidView 在运行时只获取必要的信息UI加载流程能在不同操作系统版本的设备上正常执行，这些信息不涉及系统敏感权限和用户隐私相关的内容。同时 RapidView 不含上报逻辑，即不会上报获取到的信息。有关 RapidView 获取信息的类型及用途，请查看 [RapidView SDK 个人信息保护规则](https://github.com/Tencent/RapidView/blob/master/docs/PRIVACY.md) 了解详情。\n\n## 其它\n\n详细开发指南请参阅[开发文档](https://github.com/Tencent/RapidView/blob/master/document.md)，如果有其它问题，可以扫描下方二维码，加入QQ群咨询\n\n![](http://cms.gtimg.com/android_cms/gzskin/c89fb14e3ae91058b2098072dd32965f.png)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftencent%2Frapidview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftencent%2Frapidview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftencent%2Frapidview/lists"}