项目介绍: EA-Code是由业余爱好者编写的一款:中文安卓app开发工具。
工具完全由易语言+jdk开发,目前版本是2.0版本。
亮点介绍: 1. 程序界面美观,符合现代审美与软件设计理念。
2. 支持支持库开发编写,支持库开发同样使用易语言,大大简化了开发流程。
3. 界面设计可视化,所见即得的界面开发方式。
4. 提供较为完整说明文档,即时帮助F1,代码输入提示。
5. 支持模拟器调试,能够直接引用外部模拟器进行调试。
6. 丰富的组件,让开发拥有更多可能。
7. 自带例程,例程展示的一些基本操作。
技术实现:一.目录结构说明 EA_20源码文件,引用的模块及模块目录
EA_20/SDK 里面包括了android的sdk。
EA_20/易语言支持库Lib 是易语言支持库的存放目录。
EA_20\Extra_tools 扩展工具
EA_20\E4ACompiler 编译的工具,包含易语言调用的源代码
EA_20\example 一些提供的例程
EA_20\WorkPlace 工作区目录,会随工程创建
jdk6 jdk安装包
Lib 工程源码需要的易语言支持库
Lib支持库 EA编辑器(IDE)的支持库
Lib支持库/e/ 这里存的是支持库对应Jar包的源码
Mk 模块集合
EA支持库开发白皮书.htm 和 EA支持库开发白皮书.files 开发说明文档,包含了一些Java的说明以及支持库FNE的开发文档。
源码使用说明:
首先需要安装jdk运行环境,在目录中已经包含了,jdk6
然后打开EA_20\EA.e,由于源码中引用了没有静态库的支持库,所以源码不支持静态编译,可以使用独立编译,将源码编译出来后,方可正常使用。调试模式下,由于易语言默认的调试目录为临时目录,这回造成找不到文件的问题,所以不建议在调试模式下运行。
二.源码技术说明:1. 源码中大量使用了各种技术,由于程序本身就是一个完整的系统,所以整体源码庞大,阅读的复杂度也相对较高。阅读源码时应该先从模块看起,看看都引用了哪些模块,并且模块都是做什么的,根据源码、备注、调用方法来确定模块中的命令是做什么的,逐个分析模块后,再进行主程序源码的查看。
2. 同样的,源码中引用了很多支持库,这些支持库与模块间相互配合,是整个软件的重要组成部分。
除核心库外,程序还引用了:许多支持库。所以当充分了解支持库之后,再看程序代码,就能事半功倍了。
3. 分析阅读源码
针对界面布局、窗口组件使用、位置等基本知识,这里不进行说明,只说一些复杂的实现过程。
编译过程,编译开始时,将开始分析源码,将源码进行处理,处理的过程实际上是作为了一种替换,将原本写好的代码,根据JAVA与Android的规范进行替换,将代码替换为符合标准的java代码,之后调用java编译器进行编译。最终生成文件。编译过程需要设计到实际的Android开发,故如果想要进一步了解过程,需要具备一定的Android开发能力。
根据例程,我们可以学习到一个简单的程序的开发。
如果说直接研究编译过程太过复杂的话,我们完全可以学习他软件实现的流程,代码编写的规范,学习到如何写代码才能完整的构建出这样一个大型的程序。
例程程序中如何使用变量,如何管理众多的程序集和全局变量,如何分类各种子程序,类的方法,如何组织一个大型源码和写代码同样重要。
这里推荐大家去看一下如何编写支持库以及支持库和主程序进行通信,调用。 实际上来讲,这个支持库就是一个dll(易语言的也是),通过一些固定不变的接口(子程序)来返回这个支持库的信息,信息可以包括,支持库名,支持库命令数等,这样主程序就可以知道支持库的信息,并且针对不同的信息,不同的内容作不同的处理。
重要的是在编译的时候,能够将命令进行转换,分离,然后将命令与要生成的代码结合,最终生成为一个可用的文件,这里面的玄机是真正需要我们了解和学习的。
实际上,返回支持库信息的方法就是上面图片所示,将支持库内提供的命令,命令的说明都通过一个数据类型传递给主程序,之后主程序进行调用操作。
在载入支持库的时候,正是读取对应的几个接口(子程序)来得到支持库的一些信息,命令。在编译时根据GetJar和GetLib获取执行和依赖的其他文件,最终完成编译。
在这里,支持库实际上做到了一个桥接,将Jar与EA-Code连接了起来。
代码图片:
窗口设计器,项目管理,右侧组件列表
编译过程:
源码文件名 | 模块文件名 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
EA.e |
|
|||||||||||||
Win10Menu.e |
|
|||||||||||||
复件 EA.e |
|
|||||||||||||
核心库.e |
|
|||||||||||||
Database.e |
|
|||||||||||||
JSON解析.e |
|
|||||||||||||
Lua支持库.e |
|
|||||||||||||
命令行支持库.e |
|
|||||||||||||
应用接口支持库.e |
|
|||||||||||||
悬浮按钮支持库.e |
|
|||||||||||||
拓展功能支持库.e |
|
|||||||||||||
摄像头支持库.e |
|
|||||||||||||
支付宝.e |
|
|||||||||||||
有米支持库.e |
|
|||||||||||||
百度库.e |
|
|||||||||||||
统计支持库.e |
|
|||||||||||||
腾讯支持库.e |
|
|||||||||||||
讯飞语音支持库.e |
|
|||||||||||||
高级组件支持库.e |
|
源码文件名 | 支持库文件名 | 支持库标识 |
---|---|---|
EA.e | 系统核心支持库 5.7 | d09f2340818511d396f6aaf844c7e325 |
位图操作支持库 2.0 | 42305932-06E6-47a5-AC79-8BDCDC58DF61 | |
扩展界面支持库一 2.0 | 27bb20fdd3e145e4bee3db39ddd6e64c | |
扩展功能支持库一 3.0 | DA19AC3ADD2F4121AAD84AC5FBCAFC71 | |
扩展界面支持库三 3.1 | {B6F7542F-B8FE-46a8-9605-98856A687097} | |
超文本浏览框支持库 2.2 | 5014D8FA6DCA40b68FA626D8183666EB | |
数据结构支持库 2.0 | 0AFF5F28B2CB42ce906AA27D6E485457 | |
应用接口支持库 3.1 | F7FC1AE45C5C4758AF03EF19F18A395D | |
属性框 1.3 | 8B2DC6BA5020447cA12E6D3688E6370E | |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
扩展界面支持库二 2.0 | AF6AD80AA4244A59AFB3D83ECF5173CC | |
代码编辑框支持库 2.2 | {E5E6A8E356A843bd94609DDD678BD6D8} | |
多线程支持库 2.0 | 5F99C1642A2F4e03850721B4F5D7C3F8 | |
通用对象支持库 2.0 | {A068799B-7551-46b9-8CA8-EEF8357AFEA4} | |
正则表达式支持库 2.0 | 684944CB04624eb7BD5412A519421D34 | |
压缩解压支持库 2.0 | 7B68736E818E41c5A28B0AE4D43C128C | |
操作系统界面功能支持库 3.0 | 52F260023059454187AF826A3C07AF2A | |
拖放支持库 2.0 | {9DA96BF9CEBD45c5BFCF94CBE61671F5} | |
可停靠窗格支持库 2.0 | B06BDF4CA2C945599E5EACB3B91C1CD3 | |
正则表达式支持库(Deelx版) 2.3 | 6CE139EAF3484af3AE10E402BB263AB8 | |
OPenGL支持库 2.0 | F05D3E4CE9E84d0f82332D62BAF6447F | |
Win10Menu.e | 系统核心支持库 5.3 | d09f2340818511d396f6aaf844c7e325 |
Znts.e | 系统核心支持库 5.3 | d09f2340818511d396f6aaf844c7e325 |
数据结构支持库 2.0 | 0AFF5F28B2CB42ce906AA27D6E485457 | |
通用对象支持库 2.0 | {A068799B-7551-46b9-8CA8-EEF8357AFEA4} | |
OPenGL支持库 2.0 | F05D3E4CE9E84d0f82332D62BAF6447F | |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
内部类.e | 系统核心支持库 5.3 | d09f2340818511d396f6aaf844c7e325 |
复件 EA.e | 系统核心支持库 5.3 | d09f2340818511d396f6aaf844c7e325 |
位图操作支持库 2.0 | 42305932-06E6-47a5-AC79-8BDCDC58DF61 | |
扩展界面支持库一 2.0 | 27bb20fdd3e145e4bee3db39ddd6e64c | |
扩展功能支持库一 3.0 | DA19AC3ADD2F4121AAD84AC5FBCAFC71 | |
扩展界面支持库三 3.1 | {B6F7542F-B8FE-46a8-9605-98856A687097} | |
超文本浏览框支持库 2.2 | 5014D8FA6DCA40b68FA626D8183666EB | |
数据结构支持库 2.0 | 0AFF5F28B2CB42ce906AA27D6E485457 | |
应用接口支持库 3.1 | F7FC1AE45C5C4758AF03EF19F18A395D | |
属性框 1.3 | 8B2DC6BA5020447cA12E6D3688E6370E | |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
扩展界面支持库二 2.0 | AF6AD80AA4244A59AFB3D83ECF5173CC | |
代码编辑框支持库 2.2 | {E5E6A8E356A843bd94609DDD678BD6D8} | |
多线程支持库 2.0 | 5F99C1642A2F4e03850721B4F5D7C3F8 | |
通用对象支持库 2.0 | {A068799B-7551-46b9-8CA8-EEF8357AFEA4} | |
正则表达式支持库 2.0 | 684944CB04624eb7BD5412A519421D34 | |
压缩解压支持库 2.0 | 7B68736E818E41c5A28B0AE4D43C128C | |
操作系统界面功能支持库 3.0 | 52F260023059454187AF826A3C07AF2A | |
拖放支持库 2.0 | {9DA96BF9CEBD45c5BFCF94CBE61671F5} | |
可停靠窗格支持库 2.0 | B06BDF4CA2C945599E5EACB3B91C1CD3 | |
正则表达式支持库(Deelx版) 2.2 | 6CE139EAF3484af3AE10E402BB263AB8 | |
核心库.e | 系统核心支持库 5.3 | d09f2340818511d396f6aaf844c7e325 |
扩展界面支持库二 2.0 | AF6AD80AA4244A59AFB3D83ECF5173CC | |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
模块系统.e | 系统核心支持库 5.3 | d09f2340818511d396f6aaf844c7e325 |
压缩解压支持库 2.0 | 7B68736E818E41c5A28B0AE4D43C128C | |
操作系统界面功能支持库 3.0 | 52F260023059454187AF826A3C07AF2A | |
数据操作支持库一 2.0 | 4BB4003860154917BC7D8230BF4FA58A | |
虚线选择框模块.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
颜色选择器.e | 系统核心支持库 5.3 | d09f2340818511d396f6aaf844c7e325 |
扩展界面支持库二 2.0 | AF6AD80AA4244A59AFB3D83ECF5173CC | |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
编译.e | 系统核心支持库 5.0 | d09f2340818511d396f6aaf844c7e325 |
1_第1个正则表达式.e | 系统核心支持库 4.4 | d09f2340818511d396f6aaf844c7e325 |
正则表达式支持库 1.2 | 684944CB04624eb7BD5412A519421D34 | |
2_第2个正则表达式.e | 系统核心支持库 4.4 | d09f2340818511d396f6aaf844c7e325 |
正则表达式支持库 1.2 | 684944CB04624eb7BD5412A519421D34 | |
3_正则小工具.e | 系统核心支持库 4.4 | d09f2340818511d396f6aaf844c7e325 |
正则表达式支持库 1.2 | 684944CB04624eb7BD5412A519421D34 | |
4_找英文字母.e | 系统核心支持库 4.4 | d09f2340818511d396f6aaf844c7e325 |
正则表达式支持库 1.2 | 684944CB04624eb7BD5412A519421D34 | |
5_匹配中文.e | 系统核心支持库 4.4 | d09f2340818511d396f6aaf844c7e325 |
正则表达式支持库 1.2 | 684944CB04624eb7BD5412A519421D34 | |
6_近在眼前-正则表达式应用一例.e | 系统核心支持库 4.4 | d09f2340818511d396f6aaf844c7e325 |
正则表达式支持库 1.2 | 684944CB04624eb7BD5412A519421D34 | |
扩展界面支持库一 1.2 | 27bb20fdd3e145e4bee3db39ddd6e64c | |
正则表达式工具-零点飞越.e | 系统核心支持库 4.4 | d09f2340818511d396f6aaf844c7e325 |
扩展界面支持库一 1.2 | 27bb20fdd3e145e4bee3db39ddd6e64c | |
XP风格界面库 1.6 | 7F54B9CE8887428dBA9CEEB94CEF4C72 | |
正则表达式支持库 1.2 | 684944CB04624eb7BD5412A519421D34 | |
RegExTool.e | 系统核心支持库 4.4 | d09f2340818511d396f6aaf844c7e325 |
扩展界面支持库一 1.2 | 27bb20fdd3e145e4bee3db39ddd6e64c | |
正则表达式支持库 1.2 | 684944CB04624eb7BD5412A519421D34 | |
扩展功能支持库一 2.0 | DA19AC3ADD2F4121AAD84AC5FBCAFC71 | |
Database.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
JSON解析.e | 系统核心支持库 5.7 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
Lua支持库.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
命令行支持库.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
应用接口支持库.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
扩展界面支持库二 2.0 | AF6AD80AA4244A59AFB3D83ECF5173CC | |
悬浮按钮支持库.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
扩展界面支持库二 2.0 | AF6AD80AA4244A59AFB3D83ECF5173CC | |
拓展功能支持库.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
摄像头支持库.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
支付宝.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
有米支持库.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
百度库.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
统计支持库.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
扩展界面支持库二 2.0 | AF6AD80AA4244A59AFB3D83ECF5173CC | |
腾讯支持库.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
讯飞语音支持库.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
高级组件支持库.e | 系统核心支持库 5.2 | d09f2340818511d396f6aaf844c7e325 |
特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
扩展界面支持库二 2.0 | AF6AD80AA4244A59AFB3D83ECF5173CC |