add opencode

This commit is contained in:
skong 2024-01-13 17:28:49 +08:00
parent b06af213d3
commit 9741d4ed0b
1767 changed files with 182804 additions and 0 deletions

1
ALuaJ/.projectType Normal file
View File

@ -0,0 +1 @@
lua&java工程

299
ALuaJ/AndroidManifest.xml Normal file
View File

@ -0,0 +1,299 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="3" android:versionName="1.0.2" package="com.mythoi.androluaj" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="21"/>
<!-- 拨打电话 -->
<uses-permission android:name="android.permission.CALL_PHONE" />
<!-- 发送短信 -->
<uses-permission android:name="android.permission.SEND_SMS" />
<!-- 读取手机状态和身份 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 修改您的通讯录 -->
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<!-- 读取联系人 -->
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<!-- 读取短信 -->
<uses-permission android:name="android.permission.READ_SMS" />
<!-- 查看WLAN连接 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 连接WLAN网络和断开连接 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 访问蓝牙设置 -->
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!-- 修改系统设置 -->
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
<!-- 计算应用存储空间 -->
<uses-permission android:name="android.permission.GET_PACKAGE_SIZE" />
<!-- 此应用可显示在其他应用上方 -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<!-- 关闭其他应用 -->
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<!-- 查看网络连接 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 更改网络连接性 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<!-- 访问蓝牙设置 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- 拥有完全的网络访问权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 修改或删除您的USB存储设备中的内容 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 访问大致位置信息(以网络为依据) -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 访问确切位置信息(以 GPS 和网络为依据) -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 安装快捷方式 -->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<!-- 控制振动 -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<!-- 防止手机休眠 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- 读取通话记录 -->
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<!-- 新建/修改/删除通话记录 -->
<uses-permission android:name="android.permission.WRITE_CALL_LOG" />
<!-- 拍摄照片和视频 -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<!-- 设置壁纸 -->
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<!-- 录音 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<application android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name="com.androlua.LuaApplication"
android:persistent="true"
android:largeHeap="true"
android:allowBackup="false"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation|screenSize"
android:resizeableActivity="true"
android:supportsPictureInPicture="true">
<!--适配全面屏手机-->
<meta-data android:name="android.max_aspect"
android:value="ratio_float"/>
<activity
android:name="com.androlua.Main"
android:label="@string/app_name"
android:launchMode="singleTask"
android:configChanges="orientation|screenSize|keyboardHidden"
android:theme="@android:style/Theme.Holo.Light.NoActionBar">
<intent-filter>
<action
android:name="android.intent.action.VIEW" />
<action
android:name="android.intent.action.EDIT" />
<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:host="*" />
<data android:pathPattern=".*\\.alj" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.VIEW" />
<action
android:name="android.intent.action.EDIT" />
<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.BROWSABLE" />
<data android:scheme="content" />
<data android:host="*" />
<data android:pathPattern=".*\\.alj" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.VIEW" />
<action
android:name="android.intent.action.EDIT" />
<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:mimeType="application/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="video/*" />
<data android:mimeType="text/*" />
<data android:mimeType="*/*" />
<data android:host="*" />
<data android:pathPattern=".*\\.alj" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.VIEW" />
<action
android:name="android.intent.action.EDIT" />
<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.BROWSABLE" />
<data android:scheme="content" />
<data android:host="*" />
<data android:mimeType="application/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="video/*" />
<data android:mimeType="text/*" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.alj" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.VIEW" />
<action
android:name="android.intent.action.EDIT" />
<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:host="*" />
<data android:pathPattern=".*\\.alp" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.VIEW" />
<action
android:name="android.intent.action.EDIT" />
<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.BROWSABLE" />
<data android:scheme="content" />
<data android:host="*" />
<data android:pathPattern=".*\\.alp" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.VIEW" />
<action
android:name="android.intent.action.EDIT" />
<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:mimeType="application/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="video/*" />
<data android:mimeType="text/*" />
<data android:mimeType="*/*" />
<data android:host="*" />
<data android:pathPattern=".*\\.alp" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.VIEW" />
<action
android:name="android.intent.action.EDIT" />
<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.BROWSABLE" />
<data android:scheme="content" />
<data android:host="*" />
<data android:mimeType="application/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="video/*" />
<data android:mimeType="text/*" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.alp" />
</intent-filter>
</activity>
<activity
android:name="com.androlua.LuaActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Light.NoActionBar"
android:screenOrientation="portrait"
android:configChanges='orientation|screenSize|keyboardHidden'
android:process=":runALua">
</activity>
<activity
android:name="com.androlua.LuaActivityXS"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Light.NoActionBar"
android:screenOrientation="portrait"
android:configChanges='orientation|screenSize|keyboardHidden'>
</activity>
<activity
android:label="@string/app_name"
android:name="com.androlua.LuaActivityX"
android:theme="@android:style/Theme.Holo.Light.NoActionBar"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation|screenSize"
android:documentLaunchMode="intoExisting"
android:excludeFromRecents="false"/>
<activity
android:name="com.androlua.Welcome"
android:label="@string/app_name"
android:theme="@style/welcome_theme"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:label="Runtime error"
android:theme="@android:style/Theme.Material.Light"
android:name="com.androlua.ShowErrorActivity"/>
<activity
android:name="com.mythoi.androluaj.activity.SettingActivity"
android:label="设置"/>
<activity
android:theme="@null"
android:name="androidx.pluginmgr.DynamicActivity"/>
<receiver
android:name="com.mythoi.androluaj.util.LogCatReceiver"
android:exported="true">
<intent-filter>
<action
android:name="com.adrt.SENDLOG" />
</intent-filter>
</receiver>
<service
android:name="com.mythoi.androluaj.service.HideService"
android:process=":runALua"/>
<service
android:name="com.androlua.LuaService"
android:enabled="true"
android:process=":runALua">
</service>
</application>
</manifest>

75
ALuaJ/README.md Normal file
View File

@ -0,0 +1,75 @@
# ALuaJ
该项目是<a href="http://www.occhao.cc/AndroLuaJ/">AndroLuaJ</a>的另一个简洁版,是通过<a href="http://www.occhao.cc/AndroLuaJ/">AndroLuaJ</a>自举构建出来的一个项目它是移动端IDE支持lua和java编译运行支持打包生成apk文件直接在安卓端运行
### 简介
该应用是安卓端目前还算完善的IDE同时支持多种语言编译与运行 真正实现了多语言快速封装apk。应用集成了java环境、Lua环境不管你会哪个都可以快速封装成安卓应用如果Java和Lua都会那就更好了java和lua混合开发是该应用的最大特色。其他齐全的开发教程详尽的开发文档代码自动补全代码高亮可视化布局.....在手机端轻松设计出属于自己的APP效果堪比PC端的eclipse完美兼容eclipse的安卓项目
### 详细介绍
ALuaJ集成JAVA环境、Lua环境支持java、lua编译运行它可以在手机端快速打包apk。
使用富有生命力的Lua语言和原生的java语言进行Android编程。
--如果你会Lua语言你可在手机上用极为简洁灵活的Lua语言调用AndroidApi与JavaApi编写出轻量的安卓程序。
##### -[动态·热更新]
Lua属于脚本语言无需编译直接运行程序。也就意味着给安卓添加了动态性热更新更便捷
##### -[灵活·高效]
简练自由的语法你可自由的探索出最适合自己的写代码手法lua是由纯C实现的一门脚本语言在提高了开发效率的同时你也不必担心它的运行效率。
##### -[扩展]
它支持导入第三方类库,你甚至可以从宿主层面对它进行定制。
--如果你会java语言你可以在手机上用安卓原生支持的java进行打包安卓原生程序。
##### -[多版本选择]
支持java1.3java1.4java1.5java6java7
##### -[原生·干净·包小]
因为使用了java打包生成的apk轻,小,干净。空工程打包仅34KB。
--如果Lua和Java你都会那就更好了你照样可以同时使用Lua和JAVA打包安卓程序
##### -[变态的编程方式]
lua文件中允许插入java类java方法java接口...
##### -[多种方式布局]
支持xml布局和nirenr的aly布局
内含libGDX游戏框架喜欢开发游戏的也可以尝试一下
##### -特色:
可视化布局、代码自动补全、代码高亮、强大的LogCat过滤、自动导包、齐全的开发教程、详尽的开发文档......
官方交流群551480248
<a href="http://androluaj.mythoi.cn">AndroLuaJ官方论坛</a>
### 构建此项目
使用<a href="http://www.occhao.cc/AndroLuaJ/">AndroLuaJ</a>构建该项目有开发经验的也可以用pc端的工具进行构建
* 克隆此项目到手机
* 手机端安装<a href="http://www.occhao.cc/AndroLuaJ/">AndroLuaJ</a>
* 在手机上使用<a href="http://www.occhao.cc/AndroLuaJ/">AndroLuaJ</a>进行构建此项目ALuaJ
### AndroLuaJ和ALuaJ的区别
* <a href="http://www.occhao.cc/AndroLuaJ/">AndroLuaJ官网</a>
* <a href="https://www.aluaj.tk/">ALuaJ官网</a>
* 这两个项目都是安卓端的IDE可以在手机上编写代码并编译打包生成apk直接运行一系列操作均在手机上完成。
ALuaj是AndroLuaJ(有着更多功能同时也可能潜在着更多Bug)自举出来的一个稳定版本默认基于AndroLua+4.1.0(nirenr)。AndroLuaJ支持ndk开发而ALuaJ不支持。
ALuaJ与AndroLuaJ混合工程的不同:
1.去除lua文件中插入java代码的功能
2.init.lua新增compiles={},使用它来依赖第三方支持包
3.androlua默认环境为AndroLua+4.1.0
4.android.jar里包含androlua的编译环境
5.工程路径改为/storage/emulated/0/ALuaj/
6.环境路径改为/storage/emulated/0/.alj/

BIN
ALuaJ/assets/androluaj.res Normal file

Binary file not shown.

BIN
ALuaJ/assets/apt Normal file

Binary file not shown.

BIN
ALuaJ/assets/layout1.1 Normal file

Binary file not shown.

BIN
ALuaJ/assets/lj.dex Normal file

Binary file not shown.

BIN
ALuaJ/assets/log.dex Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
{
LinearLayout,
layout_width="fill",
orientation="vertical",
{
Toolbar;
title="ALuaj教程";
layout_width="fill";
titleTextColor=0xffffffff;
subtitleTextColor=0x55ffffff;
id="mtoolBar";
background=app_theme.colorPrimary;
};
{
ListView,
id="listview",
layout_width="fill"
},
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,244 @@
require "import"
import"function.config"
updateTheme()
import "android.widget.*"
import "android.view.*"
import "android.app.*"
import "android.net.*"
import "android.content.*"
import "luahelper.help"
helpStr=[===[
@@
@ALuaj是以AndroLua+Java模式开发APP
AndroLua+.java文件
AndroLua+.dex文件中
使:
1."最近"(10)
2.src目录下没有java文件和没有引用第三方jar,aarjavajar,aar加载后使
3.m2repository使
4.android.jar有点特殊androlua的编译环境使android.jar
5.AndroLuaJ的lua文件中插入Java功能
6.AndroLuaJ的混合工程一样
@
@使java文件@
@
java文件com.test.temp.Test.java
Lua使用时
import "com.test.temp.Test"
Lua一样使用了
test=Test()
@
@使xml资源(layoutidcolorstyle......)@
@
import "mixtureJava"
使xml布局
activity.setContentView(R_layout.activity_main)
view对象
activity.findViewById(R_id.textView)
...........
import "包名.R"
使xml布局
activity.setContentView(R.layout.activity_main)
view对象
activity.findViewById(R.id.textView)
...........
@
@@
@
aly布局
{
include;
layout="layout/main"; --引用layout目录下的main.aly
layout="R.layout.main"; --引用xml布局中的main.xml
}
{include; layout=""}xml布局的 <include layout=""/>
@
@Java中使用LuaActivity的方法@
@
Java中获取LuaActivity对象LuaActivity luaActivity = Java.getLuaActivity(lua的路径);
LuaActivity后使LuaActivity已经封装好的所有方法
java跳转到lua
Java中使用luaActivity.newActivity([,..])
java调用lua函数
Java中使用luaActivity.runFunc([,...])
java运行lua代码
Java中使用luaActivity.doString(lua代码)
java运行lua文件
Java中使用luaActivity.doFile(lua文件路径)
.....
java中的luaActivity就是lua中的activity
src/activity/main.lua
require "import"
import "android.app.*"
import "android.os.*"
import "android.widget.*"
import "android.view.*"
import "layout"
import "mixtureJava"
import "com.test.Listener "
activity.setTheme(android.R.style.Theme_Material_Light)
activity.setContentView(loadlayout(layout))
btn.setOnClickListener(Listener())
function run(a)
print("来着Java的问候:"..a)
end
src/com/test/Listener.java
public class Listener implements View.OnClickListener{
//androlua的编译环境已包含在android.jar中jar使androlua里面的类
LuaActivity luaActivity=Java.getLuaActivity("activity/main");
public void onClick(View v){
luaActivity.runFunc("run","hello");//lua函数
luaActivity.doString("print'你好'");//lua代码
luaActivity.doFile("main2.lua"); //lua文件
}
}
@
@ALuaj工程目录介绍@
@
assets目录:androlua的工程目录
res目录:
src目录:androlua的工程目录androlua工程目录一样使用(javaluaaly)
libs目录:jaraarsodex子目录libs/jar目录存放jar包libs/aar目录存放aar包libs/so目录存放so文件(libs/so/x86/libtest.so)libs/dex存放dex文件dex合并到classes.dex
gen目录:R.java文件
bin目录:.apk .class .dex
@
]===]
activity.setContentView(loadlayout(help))
list={}
for t,c in helpStr:gmatch("(%b@@)\n*(%b@@)") do
--print(t)
t=t:sub(2,-2)
c=c:sub(2,-2)
list[t]=c
list[#list+1]=t
end
function show(v)
local s=v.getText()
local c=list[s]
if c then
mtoolBar.setTitle(s)
help_tv.setText(c)
help_dlg.show()
-- local adapter=ArrayAdapter(activity,android.R.layout.simple_list_item_1, String({c}))
-- listview.setAdapter(adapter)
end
end
--listview=ListView(activity)
listview.setOnItemClickListener(AdapterView.OnItemClickListener{
onItemClick=function(parent, v, pos,id)
show(v)
end
})
local adapter=ArrayAdapter(activity,android.R.layout.simple_list_item_1, String(list))
listview.setAdapter(adapter)
if app_theme.colorPrimary=="#222222" then
help_dlg=Dialog(activity,R.style.AppTheme2)
else
help_dlg=Dialog(activity,R.style.AppTheme)
end
help_dlg.getWindow().setStatusBarColor(Color.parseColor(app_theme.colorPrimary));
dlg_view={
LinearLayout,
layout_width="fill",
orientation="vertical",
{
Toolbar;
title="AndroLuaJ教程";
titleTextColor=0xffffffff;
subtitleTextColor=0x55ffffff;
id="mtoolBar";
layout_width="fill";
background=app_theme.colorPrimary;
};
{
ScrollView;
layout_width="fill";
layout_height="fill";
id="help_sv";
{
TextView,
id="help_tv",
textSize="18sp";
textIsSelectable=true,
layout_width="fill";
},
};
}
help_dlg.setContentView(loadlayout(dlg_view))
--[[func={}
func["捐赠"]=function()
intent = Intent();
intent.setAction("android.intent.action.VIEW");
content_url = Uri.parse("https://qr.alipay.com/apt7ujjb4jngmu3z9a");
intent.setData(content_url);
activity.startActivity(intent);
end
func["返回"]=function()
activity.finish()
end
items={"捐赠","返回"}
function onCreateOptionsMenu(menu)
for k,v in ipairs(items) do
m=menu.add(v)
m.setShowAsActionFlags(1)
end
end
function onMenuItemSelected(id,item)
func[item.getTitle()]()
end
]]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More