Visual Studio 2017 第一个 android

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:55   2396   0

Visual Studio 2017 发布已有一段时间,今天有时间,终于把 19.8G 离线版下载完毕, 开始VS开发android, 早期的版本,Xamarin 做得非常不好,用起来一个字"烦",所以一直无用过,现在vs2017版感觉做得好好,最少,安装完毕就可以使用,当然也要自己安装java1.8;


如果只用来开发android,可以瘦身安装,但也要8G空间,


安装完毕后,第一次启动,最好禁网再启动,这样会快点,把用不到插件,功能,删除,微软学坏了


现在开始新建 android 体现效果




接着,我们看下源码

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

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            // Get our button from the layout resource,
            // and attach an event to it
            Button button = FindViewById<Button>(Resource.Id.MyButton);

            button.Click += delegate
            {
                button.Text = string.Format("这是第{0} 单击!", count++);
            };
        }
  }
}


看上去非常简洁,最适合初学者, 现在准备运行,模拟器, 当然用 Genymotion, 快呢, Genymotion自己下载,教程大把, 记住先要 运行 模拟器, 运行后,VS 这个也是做得好好,自动识别到,如图



启动后,




傻瓜式 感觉可以把; 不像老版本,运行一大堆错, 把初学者都吓跑了,


下面,说说, VB 型的简洁事件式,

打开  SetContentView(Resource.Layout.Main); 对应该的  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="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/MyButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="but_Click"
        android:text="@string/Hello" />
</LinearLayout>


  这里,我们加入 
    android:onClick="but_Click"
改变 事件方式

像eclipse 在源码加入 

        public void but_Click(View v)
        {
           this.Title=
             (string.Format("这是第{0} 单击!", count++));
        }




把 下面的 代码 删除

button.Click += delegate ....


再运行, 呵呵,,出错,一点就闪退了, 相对 eclipse 是对,现在出错,怎办,原来还加多一行

  [Java.Interop.Export]

加了这行后,还要引用才可以喔





这下可以了, 完整代码

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

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            // Get our button from the layout resource,
            // and attach an event to it
            //Button button = FindViewById<Button>(Resource.Id.MyButton);

            //button.Click += delegate
            //{
            //    button.Text = string.Format("这是第{0} 单击!", count++);
            //};
        }
 
        [Java.Interop.Export]
        public void but_Click(View v)
        {
           this.Title=
             (string.Format("这是第{0} 单击!", count++));
        }
    }
}


是不是好简洁呢,我就是习惯这样的


接着,生成apk


记住 不要太天真 在 "\bin\Debug" 文件夹下拿apk, 是运行不了,


要在 生成--存档 这样才可以 生成 apk的,, 而且还要改 Release 模式 ,





接下来,会花小小打包成APK, 完成后,你可以 签名发布






最后, 你,就可以到得到最终8M多的apk, 呵呵,没错,就是8M ,只是几行代码, 用 VS 做,就要8M多才可以运行,相比 人家只有几kb,真的 恐怖了



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP