diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1e892b7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/.build/
+dist/
+.build/default.init.aardio
+.build/mp.lock
\ No newline at end of file
diff --git a/checksum.lzma b/.update-files/checksum.lzma
similarity index 100%
rename from checksum.lzma
rename to .update-files/checksum.lzma
diff --git a/files/SimpleNotes-aar.exe.lzma b/.update-files/files/SimpleNotes-aar.exe.lzma
similarity index 100%
rename from files/SimpleNotes-aar.exe.lzma
rename to .update-files/files/SimpleNotes-aar.exe.lzma
diff --git a/version.txt b/.update-files/version.txt
similarity index 100%
rename from version.txt
rename to .update-files/version.txt
diff --git a/default.aproj b/default.aproj
new file mode 100644
index 0000000..091ee14
--- /dev/null
+++ b/default.aproj
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/lib/config.aardio b/lib/config.aardio
new file mode 100644
index 0000000..5da06a0
--- /dev/null
+++ b/lib/config.aardio
@@ -0,0 +1,17 @@
+//config 配置文件
+import fsys.config;
+config = fsys.config("/config/");
+//config = fsys.config( io.appData("/软件作者/应用程序名/") );
+
+//不需要序列化的配置名字前请添加下划线
+namespace config {
+ __appName = "应用程序名";
+ __website = "http://www.aardio.com/";
+}
+
+/**intellisense(config)
+__appName = 应用程序名
+__website = 官方网站
+saveAll() = 写入所有配置到文件
+? = 获取值时指定不以下划线开始的配置表名称,\n返回一个可自动序列化到同名配置文件的表对象。\n如果此对象名以下划线开始,则可以正常读写值不会序列化为配置文件。\n否则不能对此对象直接赋值,只能对配置表对象的成员赋值。\n\n配置表可自动自文件加载,退出线程前自动序列化并存入文件。\n仅序列化以字符串、数值为键的元素,\n仅序列化值为字符串、数值、buffer 以及定义了 _serialize 元方法的成员。\n循环引用的值转换为 null,序列化时忽略成员函数\n!fsys_table.
+end intellisense**/
\ No newline at end of file
diff --git a/main.aardio b/main.aardio
new file mode 100644
index 0000000..4227099
--- /dev/null
+++ b/main.aardio
@@ -0,0 +1,291 @@
+//无边框窗口
+import win.ui;
+/*DSG{{*/
+var winform = win.form(text="Edge 浏览器控件 - web.view";right=759;bottom=469;border="none")
+winform.add()
+/*}}*/
+
+import fsys.update.simpleMain;
+if( fsys.update.simpleMain(
+ "SimpleNotes-aar",
+ "https://begin2019.com:3000/OTAHub/SimpleNotes-aar/raw/branch/main/version.txt", /*网址也可以改用目录名,并使用服务端代码动态返回version.txt*/
+ "/download/update-files", /*绿色软件建议改为 io.appData("/软件厂商名/软件名字/update-files") */
+ function(version,description,status){
+ /*
+ version参数包含最新版本号,
+ description包含最新版本更新说明,
+ status参数值见下面的列表:
+ "ready": 下载已完成并准备更新,
+ "updated": 已更新到新版本并准备启动新版
+ "complete": 当前已更新并已启动新版本主程序,所有操作已完成
+ "latest": 已经是最新版不需要更新
+ "failed": 出错了,description参数为错误信息
+
+ 这个回调函数不是必须的,
+ 在此检测更新代码之前或之后都可以在界面线程调用
+ fsys.update.simpleMain.onStatusChanged 订阅更新状态变更信息。
+ 该认阅回调函数的参数与上面的回调参数相同。
+ */
+ winform.msgbox(version);
+ winform.msgbox(description);
+ winform.msgbox(status);
+ } )){
+ return 0; //必须退出 main.aardio 以启动更新
+}
+
+import web.view;
+var wb = web.view(winform);
+
+//导出为 Javascript 中的 aardio 对象
+wb.external = {
+ close = function(){
+ winform.close();
+ };
+ hitCaption = function(){
+ winform.hitCaption();
+ };
+ hitMin = function(){
+ winform.hitMin();
+ };
+ hitMax = function(){
+ return winform.hitMax();
+ };
+ upgrade = function(){
+ fsys.update.simpleMain.checkUpdate(true);
+ }
+}
+
+// wb.go("/res/index.html"); //直接打开资源目录下的文件
+wb.html = /**
+
+
+
+
+
+
+
+
+
+
+
+
SimpleNotes
+
+
+
+
+
+
+
+
+
+
+
+
+**/
+
+//添加阴影边框
+import win.ui.shadow;
+win.ui.shadow(winform);
+
+//设置窗口缩放范围
+import win.ui.minmax;
+win.ui.minmax(winform);
+
+//切换最大化、还原按钮
+winform.adjust = function( cx,cy,wParam ) {
+ if( wParam == 0x2/*_SIZE_MAXIMIZED*/ ){
+ wb.doScript(`document.getElementById("max-btn").innerText="2";`)
+ }
+ elseif( wParam == 0x0/*_SIZE_RESTORED*/ ){
+ wb.doScript(`document.getElementById("max-btn").innerText="1";`)
+ }
+};
+
+winform.show();
+win.loopMessage();
\ No newline at end of file