[自荐项目] Android X2J - write XML, run Java

2019-10-12 18:51:06 +08:00
 7hens
Android X2J 是一个 Gradle 插件,它可以 自动 将你的 XML 布局翻译成 Java 代码,并 自动 注入到 Activity 和自定义布局中。项目地址 https://github.com/7hens/android-x2j
7180 次点击
所在节点    Android
13 条回复
winterbells
2019-10-12 22:56:42 +08:00
hmmm,
我记得 anko 有类似的。不过是转换成 Java 后继续编辑的
最后是不是像 flutter 那样了
bccoder
2019-10-12 23:13:35 +08:00
大佬请喝茶
ittianyu
2019-10-12 23:24:24 +08:00
费这么大劲,不如直接 java 写 UI。
推荐一下我的 UI 框架。

单 Activity 应用也很容易实现。还可以做到动态 jar 包动态 UI。
https://github.com/ittianyu/relight
7hens
2019-10-13 00:41:07 +08:00
@winterbells 额,这个和 anko 不一样。anko 使用 kotlin 来写代码,导致它的布局预览需要使用额外的插件,并且每次修改完都需要重新 build。

而 X2J 和普通的开发体验一模一样,也是使用 Xml,所以能直接预览。唯一的不同是它将 XML 的解析时机提前到了编译时。所以 X2J 能将布局的加载速度提升 200%.

而且 X2J 可以直接添加到已有的项目中,你不需要修改任何代码就能使用它。
7hens
2019-10-13 00:48:29 +08:00
@ittianyu

relight 是模仿的 flutter 吧。这个和 X2J 不一样哦。

X2J 还是使用普通的 XML 来写布局,和普通的开发体验没有什么区别,唯一不同是,它将 XML 的解析工作放在了编译的期间来做。
KunMinX
2019-10-13 01:16:36 +08:00
终于等到你
cjh1095358798
2019-10-13 07:16:16 +08:00
@ittianyu 大佬厉害啊
7hens
2019-10-13 14:05:41 +08:00
@ittianyu 我记得谷歌官方有个和 relight 类似的库 jetpack compose。类似的还有 java 版的 anvil。不过它们都没法实时预览,relight 应该也是。但 X2J 可以做到实时预览,因为它使用的还是传统的 XML。

不过 X2J 是不能和这些响应式编程方案相提并论的,它们压根不是同一种类型的库。
7hens
2019-10-13 14:07:27 +08:00
@KunMinX 等我干嘛? →_→
wanglufei
2019-10-14 00:13:35 +08:00
x2c 项目本身就一堆坑,复杂点的布局和场景就支持不了
7hens
2019-10-14 07:39:39 +08:00
@wanglufei
X2C 确实是一堆坑,但是可以改进的嘛 😂
janus77
2019-10-15 10:30:39 +08:00
这个和 X2C 有啥区别的
7hens
2019-10-15 11:20:23 +08:00
@janus77

X2J 是一个基于 X2C 的 Gradle 插件。

首先,X2J 会把 X2C 添加到 app 的 dependencies 里面,然后会生成 X2C 需要的 @Xml 注解。

然后,在 apk 编译过程中,X2C 会根据上面生成的 @Xml 注解将相关 XML 布局翻译成 Java 代码。

最后,X2J 会使用字节码编辑技术将生成的 Java 代码自动注入到 Activity 和自定义布局中。

整个 XML 解析过程都是在编译期间完成的,所以会提升 XML 布局的加载速度。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/608729

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX