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,真的 恐怖了