注:以下称呼“本人”是指火山移动程序开发作者:吴涛 而并非代表本站.
为了回馈大家对火山移动开发平台的关注,从今日起我将在此贴中公布进度.
火山移动开发平台开发整体分为三部分:整体架构及接口设计、IDE、编译。
前两项已完成,目前是第三部分的开发。
2016年11月28日: 今天处理编译项目时项目之间的相互依赖和生成顺序问题.
2016年11月29日: 今天完成了类型强制转换支持.
2016年11月30日: 今天处理十六进制常数支持.
2016年12月01日: 今天修正语义分析,增加对字符常量的支持。
2016年12月02日: 今天修正语义分析,增加对包含转义字符的字符串常量的支持。
2016年12月03日:支持插件创建IDE工具条。
2016年12月04日:支持插件创建IDE主菜单和上下文菜单。
2016年12月05日:今天本区停电,因此没有开发进度。
2016年12月06日:支持插件创建IDE工作窗口。
2016年12月07日:实现IDE编译接口完毕,进入编译器通用部分的开发。
2016年12月08日:处理插件之间的相互依赖和参考,实现程序中文名称到英文名称的转换。
2016年12月09日:完成程序语句的词法分析和语义编译。
2016年12月10日:完成常量及变量的初始值格式检查及编译。
2016年12月11日:完成多维数组常量的语义解析和编译工作。
2016年12月12日:开始处理名称连接。
2016年12月13日:继续12日的工作。
2016年12月14日:处理数据类型连接。
2016年12月15日:检查处理名称冲突,处理类的死锁继承。
2016年12月16日:开始处理对象属性表。
2016年12月17日:属性表预处理。
2016年12月18日:处理类的初始化和清理方法。
2016年12月19日:处理对象属性表中的全局属性。
2016年12月20日:处理类的方法覆盖,支持在属性值中引用常量。
2016年12月21日:支持属性备选文本列表。
2016年12月22日:完成属性编译处理。
2016年12月23日:休息一天
2016年12月24日:开始编译语句.
2016年12月25日:继续昨天的工作.
2016年12月26日:编译处理关键字.
2016年12月27日:编译处理表达式.
2016年12月28日:编译处理操作符.
2016年12月29日:编译处理成员/局部常量和变量及方法参数.
2016年12月30日:优化立即数表达式。
2016年12月31日:编译处理流程控制语句。
2017年01月01日:休息一天。
2017年01月02日:优化流程控制关键字,加入调试专用关键字。
2017年01月03日:关键字和语句处理完毕。
2017年01月04日:支持增量编译。
2017年01月05日:支持常量类及常量类属性。
2017年01月06日:程序流程优化及返回遗漏检测。
2017年01月07日:空参考变量使用检测。
2017年01月08日:编译基本完成,写出编译结果数据。下一步将进入生成目的JAVA代码环节。
2017年01月09日:写出编译结果数据。
2017年01月10日:完成写出编译结果数据。
2017年01月11日:准备开发连接器。
2017年01月12日:休息一天。
2017年01月13日:定义连接器接口。
2017年01月14日:别名支持,嵌入代码接口设定。
2017年01月15日:开始实现本地类嵌入及本地代码嵌入支持.
2017年01月16日:继续开发本地类嵌入及本地代码嵌入支持. 距离测试版完成还大约剩余10%的工作量.
2017年01月17日:完成实现本地类嵌入及本地代码嵌入支持.
2017年01月18日:从今日起开始休年假,年后继续,距离测试版发布还有以下工作未完成:
1. 自动建立事件挂接机制并支持动态生成组件的事件挂接;
2. 自动收集打包程序中的各类安卓资源;
3. 自动收集整理程序中的安卓权限和程序声明;
4. 自动收集打包程序中所用到的外部jar/so库文件;
5. 使用火山代码自身封装一些必要的系统类;
6. 将编译连接后的结果自动打包生成apk文件;
7. 其它.
以上工作完成大概还需要一个半月左右时间.
很遗憾没能赶在春节前发布测试版,一切都是为了保证产品质量,保证大家最终得到的产品足够优秀稳定好用.
"飞扬出品,必属精品",这是本人开发产品的最终信念所在,希望大家理解并继续支持火山平台.
2017年02月06日:正式进入安卓系统的支持插件开发
2017年02月07日:处理启动窗口和启动方法
2017年02月08日:建立相关安卓项目属性
2017年02月09日:设计安卓项目插件所提供的程序属性
2017年02月10日:开始生成安卓项目的程序
2017年02月11日:元宵节休息一日
2017年02月12日:处理各类程序名称转换
2017年02月13日:完成名称混淆功能
2017年02月14日:生成调试信息
2017年02月15日:支持虚拟函数
2017年02月16日:开始实现连接器
2017年02月17日:完成SDK工具启动器
2017年02月18日:开始开发APK打包器
2017年02月19日:继续开发APK打包器
2017年02月20日:继续昨日的工作
2017年02月21日:完成APK打包器
2017年02月22日:支持第三方JAR和SO库
2017年02月23日:开始将火山项目编译为安卓Java项目
2017年02月24日:开始处理安卓资源自动收集
2017年02月25日:完成安卓系统基础类的定义,包括"窗口","容器窗口组件","窗口组件","资源","可绘制资源","资产","服务","广播接收器"等.
2017年02月26日:处理安卓权限和最小需求系统版本信息的自动收集,自动检查当前JDK和安卓SDK的版本兼容性问题.
2017年02月27日:继续支持自动收集各种安卓资源和所需求的外部库,支持安卓资源的多维度,so库的多cpu架构.
2017年02月28日:继续昨日的工作
2017年03月01日:完成安卓资源自动收集
2017年03月02日:定义安卓管理器插件和安卓项目的相关选项,建立特定安卓类标记机制以便插件处理.
2017年03月03日:定义布局器接口,该接口机制支持多种布局器,支持多维布局,支持嵌套布局.
2017年03月04日:继续昨日的工作
今天把火山平台的大致设计理念讲一下: 火山平台对于用户层分别设计了L层和H层,用户使用L层可以充分利用应用环境的底层功能,可以自行扩展H层的支持强度,而使用H层可以很快地学习并应用火山平台,并不需要掌握很多的知识.拿昨日的工作来举例,用户可以学习并使用多种布局器,多维布局,甚至建立自己的布局器(L层),也可以完全不了解这些直接使用现有的布局器(H层).
2017年03月05日:支持项目用户自定义初始数据的导入
2017年03月06日:建立安卓修饰符解析器,智能识别处理各种安卓修饰符及组合修饰符.
2017年03月07日:自动输出所收集安卓资源到安卓项目资源打包目录(res),支持安卓4.2以上的全部18个资源维度及维度组合.
2017年03月08日:自动输出所收集第三方jar和so外部库文件到安卓第三方库打包目录(libs),支持安卓所提供的全部cpu架构.
2017年03月09日:完成本阶段所有工作(资源和第三方库处理),下一工作阶段为生成Java源代码.
2017年03月10日:今日休息
2017年03月11日:开始输出嵌入Java类
2017年03月12日:完成嵌入Java类输出
2017年03月13日:开始输出火山类到Java类
2017年03月14日:继续昨日工作
2017年03月15日:收集区分布局类组件,收集其中的布局信息.
2017年03月16日:继续昨日工作
2017年03月17日:根据所收集布局信息建立输出安卓布局资源(支持多维度)
2017年03月18日:完成之前定义的布局器接口
2017年03月19日:完成火山类内容的分拆,建立源代码输出器完毕.
2017年03月20日:开始输出所分拆出来的火山类各部分的Java源代码
2017年03月21日:继续昨日工作
2017年03月22日:支持用户自定义布局器
2017年03月23日:支持用户自定义布局属性
2017年03月24日:输出火山类中的窗口组件初始化代码
2017年03月25日:输出事件挂接代码
2017年03月26日:输出成员变量初始化代码
2017年03月27日:输出类的初始化和清理代码
2017年03月28日:输出窗口布局及其中窗口组件的初始化代码
2017年03月29日:输出火山类的框架及整合代码
2017年03月30日:开始输出方法内的语句代码
2017年03月31日:继续昨日工作
2017年04月01日:写出AndroidManifest.xml,输出方法代码结束.
至此测试版1.0基本开发完毕,已经可以开发安卓程序了.
后面是各种测试与调试,功能验证和修补,以及网络授权机制的加入,并且期间会抽时间升级现有易语言,因此测试版公开发布还需要一段时间.
从今日起,除非大的改动,不会再每日更新进度了,感谢大家一直关心火山开发平台.
为了回馈大家对火山移动开发平台的关注,从今日起我将在此贴中公布进度.
火山移动开发平台开发整体分为三部分:整体架构及接口设计、IDE、编译。
前两项已完成,目前是第三部分的开发。
2016年11月28日: 今天处理编译项目时项目之间的相互依赖和生成顺序问题.
2016年11月29日: 今天完成了类型强制转换支持.
2016年11月30日: 今天处理十六进制常数支持.
2016年12月01日: 今天修正语义分析,增加对字符常量的支持。
2016年12月02日: 今天修正语义分析,增加对包含转义字符的字符串常量的支持。
2016年12月03日:支持插件创建IDE工具条。
2016年12月04日:支持插件创建IDE主菜单和上下文菜单。
2016年12月05日:今天本区停电,因此没有开发进度。
2016年12月06日:支持插件创建IDE工作窗口。
2016年12月07日:实现IDE编译接口完毕,进入编译器通用部分的开发。
2016年12月08日:处理插件之间的相互依赖和参考,实现程序中文名称到英文名称的转换。
2016年12月09日:完成程序语句的词法分析和语义编译。
2016年12月10日:完成常量及变量的初始值格式检查及编译。
2016年12月11日:完成多维数组常量的语义解析和编译工作。
2016年12月12日:开始处理名称连接。
2016年12月13日:继续12日的工作。
2016年12月14日:处理数据类型连接。
2016年12月15日:检查处理名称冲突,处理类的死锁继承。
2016年12月16日:开始处理对象属性表。
2016年12月17日:属性表预处理。
2016年12月18日:处理类的初始化和清理方法。
2016年12月19日:处理对象属性表中的全局属性。
2016年12月20日:处理类的方法覆盖,支持在属性值中引用常量。
2016年12月21日:支持属性备选文本列表。
2016年12月22日:完成属性编译处理。
2016年12月23日:休息一天
2016年12月24日:开始编译语句.
2016年12月25日:继续昨天的工作.
2016年12月26日:编译处理关键字.
2016年12月27日:编译处理表达式.
2016年12月28日:编译处理操作符.
2016年12月29日:编译处理成员/局部常量和变量及方法参数.
2016年12月30日:优化立即数表达式。
2016年12月31日:编译处理流程控制语句。
2017年01月01日:休息一天。
2017年01月02日:优化流程控制关键字,加入调试专用关键字。
2017年01月03日:关键字和语句处理完毕。
2017年01月04日:支持增量编译。
2017年01月05日:支持常量类及常量类属性。
2017年01月06日:程序流程优化及返回遗漏检测。
2017年01月07日:空参考变量使用检测。
2017年01月08日:编译基本完成,写出编译结果数据。下一步将进入生成目的JAVA代码环节。
2017年01月09日:写出编译结果数据。
2017年01月10日:完成写出编译结果数据。
2017年01月11日:准备开发连接器。
2017年01月12日:休息一天。
2017年01月13日:定义连接器接口。
2017年01月14日:别名支持,嵌入代码接口设定。
2017年01月15日:开始实现本地类嵌入及本地代码嵌入支持.
2017年01月16日:继续开发本地类嵌入及本地代码嵌入支持. 距离测试版完成还大约剩余10%的工作量.
2017年01月17日:完成实现本地类嵌入及本地代码嵌入支持.
2017年01月18日:从今日起开始休年假,年后继续,距离测试版发布还有以下工作未完成:
1. 自动建立事件挂接机制并支持动态生成组件的事件挂接;
2. 自动收集打包程序中的各类安卓资源;
3. 自动收集整理程序中的安卓权限和程序声明;
4. 自动收集打包程序中所用到的外部jar/so库文件;
5. 使用火山代码自身封装一些必要的系统类;
6. 将编译连接后的结果自动打包生成apk文件;
7. 其它.
以上工作完成大概还需要一个半月左右时间.
很遗憾没能赶在春节前发布测试版,一切都是为了保证产品质量,保证大家最终得到的产品足够优秀稳定好用.
"飞扬出品,必属精品",这是本人开发产品的最终信念所在,希望大家理解并继续支持火山平台.
2017年02月06日:正式进入安卓系统的支持插件开发
2017年02月07日:处理启动窗口和启动方法
2017年02月08日:建立相关安卓项目属性
2017年02月09日:设计安卓项目插件所提供的程序属性
2017年02月10日:开始生成安卓项目的程序
2017年02月11日:元宵节休息一日
2017年02月12日:处理各类程序名称转换
2017年02月13日:完成名称混淆功能
2017年02月14日:生成调试信息
2017年02月15日:支持虚拟函数
2017年02月16日:开始实现连接器
2017年02月17日:完成SDK工具启动器
2017年02月18日:开始开发APK打包器
2017年02月19日:继续开发APK打包器
2017年02月20日:继续昨日的工作
2017年02月21日:完成APK打包器
2017年02月22日:支持第三方JAR和SO库
2017年02月23日:开始将火山项目编译为安卓Java项目
2017年02月24日:开始处理安卓资源自动收集
2017年02月25日:完成安卓系统基础类的定义,包括"窗口","容器窗口组件","窗口组件","资源","可绘制资源","资产","服务","广播接收器"等.
2017年02月26日:处理安卓权限和最小需求系统版本信息的自动收集,自动检查当前JDK和安卓SDK的版本兼容性问题.
2017年02月27日:继续支持自动收集各种安卓资源和所需求的外部库,支持安卓资源的多维度,so库的多cpu架构.
2017年02月28日:继续昨日的工作
2017年03月01日:完成安卓资源自动收集
2017年03月02日:定义安卓管理器插件和安卓项目的相关选项,建立特定安卓类标记机制以便插件处理.
2017年03月03日:定义布局器接口,该接口机制支持多种布局器,支持多维布局,支持嵌套布局.
2017年03月04日:继续昨日的工作
今天把火山平台的大致设计理念讲一下: 火山平台对于用户层分别设计了L层和H层,用户使用L层可以充分利用应用环境的底层功能,可以自行扩展H层的支持强度,而使用H层可以很快地学习并应用火山平台,并不需要掌握很多的知识.拿昨日的工作来举例,用户可以学习并使用多种布局器,多维布局,甚至建立自己的布局器(L层),也可以完全不了解这些直接使用现有的布局器(H层).
2017年03月05日:支持项目用户自定义初始数据的导入
2017年03月06日:建立安卓修饰符解析器,智能识别处理各种安卓修饰符及组合修饰符.
2017年03月07日:自动输出所收集安卓资源到安卓项目资源打包目录(res),支持安卓4.2以上的全部18个资源维度及维度组合.
2017年03月08日:自动输出所收集第三方jar和so外部库文件到安卓第三方库打包目录(libs),支持安卓所提供的全部cpu架构.
2017年03月09日:完成本阶段所有工作(资源和第三方库处理),下一工作阶段为生成Java源代码.
2017年03月10日:今日休息
2017年03月11日:开始输出嵌入Java类
2017年03月12日:完成嵌入Java类输出
2017年03月13日:开始输出火山类到Java类
2017年03月14日:继续昨日工作
2017年03月15日:收集区分布局类组件,收集其中的布局信息.
2017年03月16日:继续昨日工作
2017年03月17日:根据所收集布局信息建立输出安卓布局资源(支持多维度)
2017年03月18日:完成之前定义的布局器接口
2017年03月19日:完成火山类内容的分拆,建立源代码输出器完毕.
2017年03月20日:开始输出所分拆出来的火山类各部分的Java源代码
2017年03月21日:继续昨日工作
2017年03月22日:支持用户自定义布局器
2017年03月23日:支持用户自定义布局属性
2017年03月24日:输出火山类中的窗口组件初始化代码
2017年03月25日:输出事件挂接代码
2017年03月26日:输出成员变量初始化代码
2017年03月27日:输出类的初始化和清理代码
2017年03月28日:输出窗口布局及其中窗口组件的初始化代码
2017年03月29日:输出火山类的框架及整合代码
2017年03月30日:开始输出方法内的语句代码
2017年03月31日:继续昨日工作
2017年04月01日:写出AndroidManifest.xml,输出方法代码结束.
至此测试版1.0基本开发完毕,已经可以开发安卓程序了.
后面是各种测试与调试,功能验证和修补,以及网络授权机制的加入,并且期间会抽时间升级现有易语言,因此测试版公开发布还需要一段时间.
从今日起,除非大的改动,不会再每日更新进度了,感谢大家一直关心火山开发平台.