为了方便所有应用和数据统一管理,就搞了这么一个方案。也没多少技术含量,单纯分享一下踩的坑,避免大家踩坑。
采用FTP下载所需dll,用C#反射机制去实现应用程序加载。
软件逻辑
文件结构
所有库的框架都是.NET Standard2.1
应用下载和反射加载
插件dll的本地路径:/data/user/0/应用包名称/files/.override/dll名称.dll 这个路径问题当初因为不清楚安卓的内部存储,就走了很多弯路。公共依赖库总是访问不到。
public Command<ApplicationInfo> CmdLoadApp
{
get => _CmdLoadApp ?? new Command<ApplicationInfo>(async app =>
{
if (app == null || app.IsDownLoading) return;
#region 身份验证
if (string.IsNullOrEmpty(SettingConfig.getInstance().Cur_User))
{
await App.Current.MainPage.Navigation.PushAsync(new Views.LoginPage()); return;
}
else
{
if (await Utils.Helpers.NetWorkHelper.IsConnectNetWork(Common.ConfigSettings.SettingConfig.getInstance().ApiSrv_Ip))
{
var user = Common.Instances.ApiInstance.Instance.User_Srv.GetUserByUserName