Mono 代码实现返回功能

Mono里运行C#脚本3—mono_jit_init 为什么这样说呢,因为需要解释并执行C#编译的受托管的代码,相当于就是建立一个C#代码运行的虚拟机,而这个虚拟机还是很复杂的,不但要支持C#运行各种特性,比如内存管理的垃圾回收机制,还需要对C#的代码进行即时编译,或者提前编译AOT,并且可以根据不同的平台生成不同的代码,比如在X64上生成的代码,与ARM64上生成的代码就会不一样,执行的速度也不一样,处理的方式也不一样。前面已经介绍了配置参数的读取,这样就可以把一些特殊的配置读取进来,完成了用户配置阶段的参数,接着下来就需要进行大工程的建造了。 阅读详情

废话不说直接上干货:

Main.axml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <Button
        android:text="跳转"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button2" />
    <EditText
        android:id="@+id/et_StartTime"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

MainActivity.cs

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace App1
{
    [Activity(Label = "App1", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        int count = 1;

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            //无标题栏位
            this.RequestWindowFeature(WindowFeatures.DefaultFeatures);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);
          
            Button button = FindViewById<Button>(Resource.Id.button2);
            button.Click += button_Click; ;

        }

        void button_Click(object sender, EventArgs e)
        {
            StartActivity(new Intent(this, typeof(Activity1)));
        }
    }
}
layout1.axml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:minWidth="25px"
    android:minHeight="25px">
    <Button
        android:text="返回Main"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button1" />
</LinearLayout>

Activity1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Text.Method;
using Android.Text.Style;
using Android.Views;
using Android.Widget;

namespace App1
{
    [Activity(Label = "Activity1")]
    public class Activity1 : Activity, View.IOnClickListener
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            SetContentView(Resource.Layout.layout1);


            Button button = FindViewById<Button>(Resource.Id.button1);

            button.SetOnClickListener(this);
        }
        public void OnClick(View v)
        {
            Finish();
        }
    }
}

源码,可直接运行


Mono里运行C#脚本37—mono_compile_create_vars函数 它根据给定的类型和操作码,分配适当的寄存器,并调用 mono_compile_create_var_for_vreg 函数来完成变量的创建。在上面的代码里,先调用mono_method_signature_internal函数,在此函数里会使用一个签名的结构MonoMethodSignature。在这里调用函数mono_compile_create_var,它的指令操作码是OP_ARG,表明生成一条返回值的参数指令。然后根据返回值的类型来创建控制流图的返回值语句cfg->ret。保存在cfg->ret里。 阅读详情

相关推荐

Mono 代码实现系统返回,跳转至上一页面

Mono 代码实现系统返回,跳转至上一页面

获取Mono<String> 反应式Java中的String 字符串的值

获取Mono 反应式Java中的String 字符串的值

shinexunmeng的博客 6641

Unity3D Pico VR 手势交互实战:基于MRTK3实现抓握与射线控制

本文针对Pico VR原生手势交互功能不足的问题,提供了基于MRTK3实现高级手势交互的实战解决方案。通过将MRTK3成熟的交互框架与Pico的手势追踪能力相结合,详细讲解了从环境配置、SDK导入、核心适配到真机调试的全流程,帮助开发者高效实现抓握与射线控制等复杂交互,有效提升Pico VR应用的开发效率与体验。

weixin_29011667的博客 391

Java中的Mono类

类是Spring Reactor框架中的一个核心组件,它是Reactive Streams规范的一个实现,主要用于处理包含零个或一个元素的异步序列。Mono可以代表未来某个时刻可能出现的单一值,或者表示没有值(即空值)。这种类型的反应式类型非常适合那些你期望返回单个结果(比如查询数据库得到的单个实体)的情况。注意:由于Mono是冷信号(Cold Signal),直到订阅发生时才会执行相关逻辑。因此,它的优势在于能够构建灵活且高效的异步处理管线。

semicolon_hello的专栏 8584

揭秘Synopsys EDA中的AI黑科技:DSO.ai如何改变传统芯片设计流程

本文深入探讨了Synopsys EDA中的AI黑科技DSO.ai如何革新传统芯片设计流程。通过数据驱动的方法论、功耗优化革命和时序收敛智能加速,DSO.ai显著提升了设计效率和质量,实现了从经验驱动到AI驱动的范式转变。文章还提供了实战指南,帮助团队跨越AI EDA的实施鸿沟。

weixin_29296241的博客 526

保姆级教程:在Windows上用VS2019和OpenCV4.6搞定海康MV-EB435i RGBD相机图像采集

本文提供了一份详细的教程,指导如何在Windows环境下使用VS2019和OpenCV4.6配置海康MV-EB435i RGBD相机进行图像采集。从开发环境准备、SDK部署到代码移植和优化,涵盖了深度图与RGB图同步采集的实战技巧,帮助开发者快速上手工业级RGBD相机的应用开发。

weixin_28675557的博客 467

Mono 功能介绍与使用示例

Mono是 Spring Reactor 框架中的核心组件,属于响应式编程(Reactive Programming)模型,专注于处理包含0 或 1 个元素的异步序列[1][2][5异步非阻塞:通过 Reactive Streams 规范实现,适用于高并发场景[1][5冷信号:仅在订阅(subscribe)时执行,支持延迟计算[1][4资源高效:相比传统多线程模型,Mono 通过事件驱动减少资源消耗[1简化异步代码:通过链式调用替代回调地狱[1][3高效资源利用。

bsklhao的博客 1679

实战指南 | 快速修复Adobe Acrobat 2020安装过程中的常见注册表错误

本文提供了Adobe Acrobat 2020安装过程中遇到“无法打开键”注册表错误的详细修复指南。通过安全编辑注册表,精准定位并删除残留键值,可快速解决此常见安装报错,确保软件顺利安装。同时,文章也介绍了其他安装问题的应对策略与预防措施。

weixin_29200485的博客 563

(5)Spring WebFlux快速上手——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式流 | lambda与函数式 | Reactor快速上手 1.3.3 Spring WebFlux Spring WebFlux是随Spring 5推出的响应式Web框架。 1)服务端技术栈 Spring提供了完整的支持响应式的服务端技术栈。 如上图所示,左侧为基于spring-webmvc的技...

刘康的专栏 16万+

Palantir解密:“本体”的建模逻辑及其扩展方向

上一篇重点从对现实世界建模的角度探讨了“本体”在数字化架构中的核心意义。这里借Palantir的“本体”概念、解析Palantir只是起点,目标旨在以他山之石攻玉——探索数字世界的底层架构逻辑,最终为构建自主体系提供思考。Palantir以“本体论”为核心的建模方案是否代表终极答案,不宜过早下结论,但其思路值得深入剖析。

SZSDQJC的博客 2635

IC面试常考题 Verilog三分频电路设计(占空比50%,三分之一,三分之二)

实现三分频电路最简单的是: 利用计数器实现。 时序图分析(本人比较懒,平常科研忙,所以直接手画时序图了,懒得用软件画了): 直接上图分析:利用计数器每隔三个周期信号翻转一次,同时在不同的计数下翻转得到的同步信号 clk_1和clk_2,再利用异或即可实现出一个不同占空比的三分频信号(同样的方法也可扩展到其他奇数分频设计中)。 例如占空比50%: module Div_three( input clk, input rst_n, output div_three ); reg

qq_41884662的博客 1万+

【SLAM】VINS-MONO解析——综述

目前网上有很多分析文章,但是都只是一些比较基础的原理分析,而且很多量,虽然有推倒,但是往往没有讲清楚这些量是什么,为什么要有这些量,这些量是从哪来的,也没有刷通整个代码,或者太简练了,对新手不友好。这一次我计划从原理/代码一步步刷通整个VINS,并且说清楚代码中遇到的每一个数据结构对应的作用是什么。 github官方上开源了VINS-mono,VINS-Fusion和VINS-mobile,还有另...

iwanderu的博客 6万+

保姆级教程:用Kvaser DB Editor从零创建你的第一个DBC文件(附CAN信号属性详解)

本文提供了一份详细的Kvaser DB Editor教程,指导用户从零开始创建DBC文件,并深入解析CAN信号属性的关键设置。通过步骤清晰的安装指南、信号属性配置详解和实用技巧,帮助工程师和学生快速掌握CAN总线通信的核心工具,提升工作效率。

weixin_27076351的博客 250

C++返回值如何被Mono封装为托管对象

在Mono/IL2CPP的InternalCall中,C++返回值处理方式取决于C#端返回类型:引用类型(如class、string)需返回MonoObject*/MonoString*,由Mono自动封装为C#对象并分配托管内存;值类型(如int、struct)则直接返回基础类型,无需封装。示例显示,返回string需用mono_string_new,而返回int直接传值即可。关键注意事项包括类型严格匹配,结构体需特殊处理。总结:引用类型返回需MonoObject*封装,值类型则直接返回原始值。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 468

福彩快乐8智能选号系统研究

本文介绍了一款福彩快乐8智能选号系统的开发过程。系统首先通过数据采集获取历史开奖数据,作为分析的基础。随后,对采集的数据进行深入分析,以识别可能的模式和趋势。基于这些分析,系统能够智能预测未来的开奖号码,如2025129期的预测。最后,通过模拟兑奖功能,用户可以直观地看到预测结果的实际效果。文章鼓励感兴趣的读者点赞并领取源代码,以便自行探索和使用该系统。

gumuzi1210的博客 2214

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

flux mono 转_从Flux转换到Mono(Convert from Flux to Mono)

从Flux转换到Mono(Convert from Flux to Mono)如何将1个元素的Flux转换为Mono?Flux.fromArray(arrayOf(1,2,1,1,1,2)).distinct().take(1)我如何使这个单声道(1)?How can I convert from a Flux with 1 element to a Mono?Flux.fromArray(arr...

weixin_29783347的博客 4686

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Flux功能介绍,完整使用示例,与Mono对比

核心定义Flux是Reactor库中的核心接口,表示一个异步的、包含零到多个元素的序列(类似流式数据处理)[3][4][7它可以处理无限长度的数据流,适用于需要持续处理多个事件的场景[4][8关键特性异步非阻塞:基于响应式编程模型,以事件驱动方式处理数据流,避免阻塞主线程[3][4背压支持:通过背压机制协调生产者与消费者速率,防止数据过载[3][8丰富操作符:提供mapfilterflatMapmerge等操作符,支持数据转换、合并、分组等复杂逻辑[3][7多源组合。

bsklhao的博客 1649

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Mono和IL2CPP

什么是跨平台 首先,什么是跨平台? 跨平台:一次编译,不需要任何代码修改,应用程序就可以运行在任意在平台上跑,即代码不依赖于操作系统,也不依赖硬件环境。 游戏肯定需要跨平台,不能只支持一种平台,不然每个对应的平台做出一种对应的编译器,那真的会累死。所以对于跨平台的需求,对于游戏开发而言,很重要。Unity的架构需求设计当然也需要这个特性。 Mono介绍 Mono是一个由Xamarin公司所主持的自由开放源码项目。 Mono的目标是在尽可能多的平台上使.net标准的东西能正常运行的一套工具,

漫漫无期的博客 3713

关于Mono和Flux的理解

关于Mono和Flux的理解

热爱生活,享受编程 2万+

Reactor3 Mono

Reactor3 Mono 创建 操作符

Weison 3376

Mono 的执行流程

本文主要同时简单的示例来分析一下Mono在发布订阅过程中的执行流程。

码易的博客 2461

响应式编程中Mono和Flux的区别

当我们在使用Project Reactor,或者使用依赖于它的框架的时候。例如spring webflux,spring cloud gateway等,经常会用看到代码中有Mono和Flux两个术语。

xp_lx12的博客 2110

自定义Mono,实现Unity Android平台代码更新

Unity是基于Mono的,我们写的代码都被编译成DLL,然后由Mono读取这个DLL并解析运行。在Mono眼里,DLL和普通的资源文件没什么区别。

Hello Captain 4647

反应式编程之Mono.defer

本文基于project reactor,,reactor-bom版本为Dysprosium-SR4,project reactor数据源大致可以分为两类:恶汉型跟懒汉型, mono defer方法创建数据源属于懒汉型,与Mono.just等创建数据源则是恶汉型,下面看一个例子: @Test public void defer(){ //声明阶段创建DeferClass对象 ...

johnhuster的专栏 1万+
上一篇: Mono 平台 安卓 APP 菜单栏制作
下一篇: EasyUI datagrid 列包含超链接以及鼠标经过提示单元格内容
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值