VS2015下的Android开发系列02——用VS开发第一个Android APP

配置Android模拟器

  这算是第一篇漏下说的,配置好VS的各参数,新建Android项目后,会发现菜单下的工具栏会多出Android相关的工具栏,红色圈出的就是AVD。

  打开AVD后可以从模版处选一个设备,然后自己再做细节参数调整。

  然后选择要模拟的版本,因为APP有蓝牙BLE的支持需求,所以选择了至少API Level18,注意如果安装了HAXM,CPU/ABI项一定要选"Intel Atom (x86)",如果没有,说明组件未安装,赶紧去下载后再来;另外一个注意点是内存至少3G,要不运行起来卡成狗,不要问我是怎么知道的……

  运行效果

建立一个Android APP

  通过新建项目对话框,新建一个空的Android项目

   新建后的项目基本目录如下(里头的layout1.axml和Activity1.cs是后面加的)

AndroidManifest.xml

  首选第一个要说的是AndroidManifest.xml,这是APP中非常重要的一部分,但在VS中不用像JAVA的开发环境中一样把相关配置写全,打开只看到基本的部分,其余的VS会在编译时补全。AndroidManifest.xml中的内容基本可以在项目属性中配置完成

(namespace、API Level等的配置)

(APP版本、名称、权限等)

(这里还没实际经验,保持默认,等搞清楚了再来说)

Assets和Resource资源目录

  Assets里放的是二进制资源文件,如字体、声音,访问方式如下(具体参考Assets目录下的AboutAssets.txt文件里面有示例代码):

//Any raw assets you want to be deployed with your application can be placed in
//this directory (and child directories) and given a Build Action of "AndroidAsset".
//
//These files will be deployed with you package and will be accessible using Android‘s
//AssetManager, like this:

public class ReadAsset : Activity
{
    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);

        InputStream input = Assets.Open ("my_asset.txt");
    }
}

//Additionally, some Android functions will automatically load asset files:

Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");

  Resource目录中包含了布局、图片、字符串字典等资源文件,同样来看下资源的调用说明(目录中的AboutResources.txt):

/*
Images, layout descriptions, binary blobs and string dictionaries can be included
in your application as resource files.  Various Android APIs are designed to
operate on the resource IDs instead of dealing with images, strings or binary blobs
directly.

For example, a sample Android app that contains a user interface layout (main.axml),
an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
would keep its resources in the "Resources" directory of the application:

Resources/
    drawable/
        icon.png

    layout/
        main.axml

    values/
        strings.xml

In order to get the build system to recognize Android resources, set the build action to
"AndroidResource".  The native Android APIs do not operate directly with filenames, but
instead operate on resource IDs.  When you compile an Android application that uses resources,
the build system will package the resources for distribution and generate a class called "R"
(this is an Android convention) that contains the tokens for each one of the resources
included. For example, for the above Resources layout, this is what the R class would expose:
*/

public class R {
    public class drawable {
        public const int icon = 0x123;
    }

    public class layout {
        public const int main = 0x456;
    }

    public class strings {
        public const int first_string = 0xabc;
        public const int second_string = 0xbcd;
    }
}

/*
You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main
to reference the layout/main.axml file, or R.strings.first_string to reference the first
string in the dictionary file values/strings.xml.
*/

Activity代码

 除了这些目录以外,别的就是Activity的代码及自己的类代码啦,APP的默认启动Activity只要设备类的相关属性就OK了,不需要特定的名字,重点注意:“MainLauncher = true, Icon = "@drawable/icon"”。至于别的代码是不是和JAVA的基本一样一样的?

[Activity(Label = "演示APP_01", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {

        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

        }

    }

如点击按钮启动另外一个Activity的代码,有没有熟悉的感觉?

Button btnOpenActivity = FindViewById<Button>(Resource.Id.btnOpenActivity);

btnOpenActivity.Click += (sender, e) =>
            {
                Intent intent = new Intent(this, typeof(Activity1));
                StartActivity(intent);
            };

为Activity添加两个按钮和一些简单的代码后调试运行效果图:

时间: 2024-10-01 23:43:04

VS2015下的Android开发系列02——用VS开发第一个Android APP的相关文章

[eShopOnContainers 学习系列] - 02 - vs 2017 开发环境配置

https://github.com/dotnet-architecture/eShopOnContainers/wiki/02.-Setting-eShopOnContainers-in-a-Visual-Studio-2017-environment 一. 核心步骤 Git clone https://github.com/dotnet-architecture/eShopOnContainers.git git 克隆 项目 Open solution eShopOnContainers-S

(转)Android Studio系列教程一下载与安装 背景Android Studio VS Eclipse准备下载创建HelloWorld项目

背景 相信大家对Android Studio已经不陌生了,Android Studio是Google于2013 I/O大会针对Android开发推出的新的开发工具,目前很多开源项目都已经在采用,Google的更新速度也很快,明显能感觉到这是Android开发的未来,那么我们还有什么理由不去拥抱未来呢? 虽然推出了很久,但是国内貌似普及的程度并不高,鉴于很多朋友求studio的详细教程,那么今天我就手把手教大家下载.安装.使用,Studio之路从这里开始. Android Studio VS Ec

Android应用系列:手把手教你做一个小米通讯录(附图附源码)

前言 最近心血来潮,突然想搞点仿制品玩玩,很不幸小米成为我苦逼的第一个试验品.既然雷布斯的MIUI挺受欢迎的(本人就是其的屌丝用户),所以就拿其中的一些小功能做一些小demo来玩玩.小米的通讯录大家估计用过小米的都清楚是啥子样的,没用过小米的也别着急,瞧瞧我的demo,起码也有七八分相似滴.先上图看效果 我是图: PS:吐槽一下,博客园上个图真难,所以搞了个短点的gif上才没失败....唉... 在这里仅仅是实现了逻辑交互的效果,并没有点击打电话的功能,因为也不难就懒得加了... 分析 我们说说

Android开发系列(十六):【Android小游戏成语连连看】第二篇

写的晚了,在分工个Z市高中的一个成绩查询的系统,原系统竟然是用VB写的,我不得不佩服原本写系统的那位哥们真能耐得住. 明天搭建下SVN就等着先发工程款然后开始项目了,想想有工资进账,心里也为我那干瘪的钱包小兴奋了一把. 闲话不多说了,今天我们来分析下这个小游戏的工作原理以及核心代码的解析: 工作原理: "主界面"以及"关卡界面"不多说了,这两个是直接写了xml文件, 然后,我们在"游戏界面"的搭建是: 用java代码动态生成了这个界面,在界面中通

微信开发系列----02:实现POST请求响应

继续昨天的,现在我们的微信测试成功了,可以开发实现微信的各种功能,今天主要实现微信的简单交互,比如发送语音,图片,文本等请求,网站服务器发送对应的响应. 项目GitHub地址:  https://github.com/Andyahui/xgyxsh_WeiXin 一:微信XML的POST请求处理 昨天我们已经成为了开发者,说明get请求时可以到底,且是得到了相应的处理,下面是我们通过浏览器我们配置的URL浏览到的. 我们可以发现在get请求中设置的返回值在这里出现了,说明我们的测试是成功的.下面

Android开发系列(十五):【Android小游戏成语连连看】第一篇

学了一个多月安卓,因为暑假的时候要给朋友说写个小游戏,而且也想检测下自己的能力,所以说从7号开始就着手写这个小游戏了,前前后后带上课到今天总算是写完了,但是写的这个小游戏还是有很多问题,但是还好,勉强能跑起来,一些瑕疵就不要在乎太多了,毕竟咱又不准备发布供别人下载. APK安装包下载链接(我给放在百度云盘了,可以直接点击下载):http://pan.baidu.com/s/1bnxpQrH 代码文件下载:(放在CSDN的下载那里了,不需要积分):http://download.csdn.net/

android开发环境搭建(二)第一个Android程序

一.新建Android项目:File-->New-->Other 2.在出现的表单中填写:Application Name:应用程序显示给用户的名称.在这个项目中,使用"My First App"Project Name:项目目录,并在Eclipse中可见的名称.Package Name:应用程序包的命名空间(遵循Java中相同的规则).包的名称必须是唯一的,建议使用与组织的反向域名开头的名称.在这个项目中,可以使用 "com.example.myfirstapp

iOS开发系列之常用自定义控件开发集—自定义单选按钮或者多选按钮控件开发

在我们实际开发中我们做登陆或者注册功能时往往需要勾选某个协议这个时候就需要用到CheckBox按钮,CheckBox是pc或者android上得控件ios没有,所以需要我们自定义. WHC_RadioButton.h头文件如下: // // WHC_RadioButton.h // CTBMobileBank // // Created by 吴海超 on 15/4/1. // // #import <UIKit/UIKit.h> #define KWHC_IMAGE_SIZE (15.0)

iOS开发系列之常用框架开发集—自定义UINavitationController开发1

在实际开发过程中构建我们项目框架时为了用户体验好和个性化往往需要手势返回的功能,虽然ios7以后的系统支持这个但是系统有些不足如:支持手势返回需要ios7.0以上系统,手势非要从左边缘开始拉,触摸拉开效果不能自定义,然而我们今天就给大家开发一款支持手势返回没有系统要求(ios5.0以上),从哪里可以触摸返回可以自定义的一个导航框架. 我这个是以淘宝app的导航框架为例开发. WHC_NavigationController.h头文件如下: // // WHC_NavigationControll