分类:C#、Android、VS2015;创建日期:2016-01-20

目前Android在全世界市场上大约有75%的占有率,国人Android手机的持有比例更甚,甚至达到90%以上。因此搞计算机的一听说手机应用开发,一个个都像着了魔似的,既然有那么多人对它感兴趣,那咱也跟着玩一玩。但是,本模块不是介绍如何用Java开发,而是全部用C#去实现。

为什么用C#去实现?原因很简单,目前手机市场经过多年的你争我斗,现在就剩下Android、iOS、Windows Phone还能互相斗狠,其他的统统都被打趴下找不着北了。但是,学Android应用开发要用Java、学iOS应用开发要用Objective-C、学WindowsPhone应用开发要用C++,我的天,这不是故意折腾人吗,是不是用一种语言可以“通吃”这三种应用程序的开发呢?答案是“有”,那就是“C#”。

一、用C#开发移动应用的优势

用C#开发手机应用程序,建议首选VS2015,这是因为VS2015内置的是C# 6.0,很多原来实现起来比较繁琐的操作,在VS2015下也都变得非常简单了。

1、跨平台移动应用开发

VS2015的移动跨平台采用Xamarin架构,这让原本就熟悉Visual Studio的开发者不用再熟悉其他的开发工具就能直接开发移动应用程序。

(1)Win7:VS2015+C# 搞定 Android、iOS

在Win7下用VS2015创建项目时,可直接使用iOS及Android的项目模板。开发团队也可以将iOS以及Android的程序代码纳入到ALM,而且还可以使用TFS(Team Foundation Server)进行版本创建和配置的管理。

用C#编写移动App时,可使用功能齐备的Android和iOS设计器创建针对各个平台自定义的100%本机用户界面(Native UI Code)。另外,利用.NET构建移动应用程序时,还可以直接访问2万多个.NET库和Xamarin组件。

(2)Win10:VS2015+C#  搞定 Android、iOS、Windows Phone

在Win10下用VS2015创建项目时,可直接用C#快速构建适用于多种平台(Android、iOS、Windows Phone和Mac)的移动应用,而且可在不同平台间共享商业逻辑以及数据存取等程序。除了省下重新撰写的时间成本外,对于版本维护及代码的一致性也有相当大的帮助。

2、原生代码提升本机性能

VS2015编译针对iOS及Android平台的应用程序时,实际上是利用Xamarin将C#程序直接编译成ARM或者Intel的CPU的原生机器码,因此效率和性能与原生模式开发的Android和iOS应用程序相比没有不同。特别是在Android系统上,Xamarin并不是使用Android的Dalvik虚拟机,而是改为用CLR来实现,因此开发效率和执行性能都得到了大幅度的提升,有的甚至更甚于原生的应用程序。

3、直接访问核心平台API

除了.NET API以外,开发人员还能用C#直接访问所有平台的本机核心API,而且不会受到任何限制。

4、生命周期管理以及与Azure的连接

用C#开发移动应用时,可以轻松管理源代码存储库、生成、持续集成部署、单元测试和UI测试。而且还可以在开发和生产环境中运行诊断,通过遥测和分析实时监视应用性能和用户行为。

除了对Visual Studio功能具有完全的访问权限以外,C#开发的移动应用还能与微软的云架构(Azure)移动服务快速集成并进行配置,并且可无缝添加各种服务,如云中的数据存储、客户身份验证、推送通知或离线同步,并可随时扩展到数百万台设备。

5、流行且成熟

移动开发对于全球范围内的组织变得越来越重要,目前国外数千家公司正在使用Xamarin和Visual Studio构建高质量的、任务关键型应用。

通过Visual Studio 2015和Xamarin,企业可以使用现有的技能和技术投资加速上市时间并为所有用例提供移动应用。

二、内容规划

本模块将全面介绍在VS2015下用C#+Xamarin开发Android手机App的各种技术。以后将不定期更新各章的内容,以方便查找。这些内容有些是原创的,有些是参考官网、教程、或者别人网上发布的代码总结而成的,有些则直接参考Java代码,然后自己再用VS2015和C#实现一遍,因此各章更新也不分先后,感觉放到哪合适就更新那里。

各章介绍的所有源程序都在VS2015简体中文企业版+SP1开发环境下调试通过。

【Android】1.0 第1章 C#之Android手机App开发的更多相关文章

  1. 在Android Studio 0.5.2中使用ArcGIS Android SDK

    环境 操作系统:Mac OSX 10.8.5Android Studio: 0.5.2ArcGIS Android SDK: 10.2.3 操作步骤 在Android Studio中新建一个Modul ...

  2. HBuilder mui 手机app开发 Android手机app开发 ios手机app开发

    经过一段时间的学习,做公司项目,对mui框架有了更加深入完整的了解,其实刚开始接触HBuilder中的mui框架只是简单的了解,并没有深入的研究,后来由于工作的需求,不得不深入研究,并运用的项目中去. ...

  3. Android 7.0 调取系统相机崩溃解决android.os.FileUriExposedException

    一.写在前面 最近由于廖子尧忙于自己公司的事情和OkGo(一款专注于让网络请求更简单的网络框架) ,故让LZ 接替维护ImagePicker(一款支持单.多选.旋转和裁剪的图片选择器),也是处理了诸多 ...

  4. Android 7.0 安装器安装过程分析 (com.android.packageinstaller)

    1 安装入口PackageInstallerActivity,这个类只是在安装前做准备.通过各种校验,然后弹出被安装应用的权限框,等待用户安装.具体的流程如下 1.1  求mSessionId 如果是 ...

  5. 【适配整理】Android 7.0 调取系统相机崩溃解决android.os.FileUriExposedException

    一.写在前面 最近由于廖子尧忙于自己公司的事情和 OkGo (一款专注于让网络请求更简单的网络框架) ,故让LZ 接替维护 ImagePicker(一款支持单.多选.旋转和裁剪的图片选择器),也是处理 ...

  6. HBuilder mui 手机app开发 Android手机app开发 ios手机app开发 打开新页面 预加载页面 关闭页面

    创建子页面 在mobile app开发过程中,经常遇到卡头卡尾的页面,此时若使用局部滚动,在android手机上会出现滚动不流畅的问题: mui的解决思路是:将需要滚动的区域通过单独的webview实 ...

  7. Ubuntu 手机 app开发学习0

    # 相关网址 http://developer.ubuntu.com/zh-cn/apps/sdk/ 0. 环境搭建 首选需要一个Ubuntu 14.04操作系统.没啥好讲的,直接安装了一个虚拟机. ...

  8. Android 4.0设计规范 优先导读 十大改变

    在拜读和翻译了 Android design 设计指导后,对比 Android 4.0 与 Android2.3 及之前版本的 app 设计指导,总结了 Android 4.0 设计的 10 大改变: ...

  9. Android进阶之光-第1章-Android新特性-读书笔记

    第 1 章 Android 新特性 1.1 Android 5.0 新特性 1.1.1 Android 5.0 主要新特性 1. 全新的 Material Design 新风格 Material De ...

随机推荐

  1. 转 linux下php扩展mysqli的支持

    前两天一个站点转移过来,因为给我的数据库有问题,我也没有仔细处理这个站点.今天把数据库弄好了,发现还是用不了,报的错误如下:Fatal error: Class ‘mysqli’ not found ...

  2. 转 解决在X64 RedHat5.1 下以编译方式安装PHP 出现的种种问题

    不知道大家有没有遇到在  X64 RedHat5 或者 RedHat4 下.编译安装PHP环境的时候. 安装了libxml,zlib,jpeg,libpng,freetype,libart_lgpl, ...

  3. NFS 网络文件系统测试笔记

    NFS(Network Files System),网络文件系统是1980年由SUN发展出来在UNIX&Linux系统间实现磁盘文件共享的一种方法.它是一种文件系统协议:支持应用程序在客户端通 ...

  4. word2vec训练中文模型

    --  这篇文章是一个学习.分析的博客 --- 1.准备数据与预处理 首先需要一份比较大的中文语料数据,可以考虑中文的维基百科(也可以试试搜狗的新闻语料库).中文维基百科的打包文件地址为 https: ...

  5. Swift与C类型对应关系表

    每一个 C 语言基本类型, Swift 都提供了与之对应的类型. 在 Swift 中调用 C 方法的时候,会用到这些类型: C 类型 Swift 对应类型 别名 bool CBool Bool cha ...

  6. python中的struct模块

    struct模块用于将python中的对象转化为bytes. 举例 demo1:将int转换为bytes buf1 = 256 bin_buf1 = struct.pack('i', buf1) # ...

  7. 简单的Java串口通讯应答示例

    java串口通讯第一次使用,找的资料都比较麻烦,一时没有理出头绪,自己在示例的基础上整理了一个简单的应答示例,比较简陋,但演示了java串口通讯的基本过程. package com.garfield. ...

  8. Using 1-Wire device with Intel Galileo

    Using 1-Wire device with Intel Galileo 3 Replies Many people have had trouble with getting 1-Wire de ...

  9. mac使用phpize进行安装的时候碰到的问题

    问题: grep: /usr/include/php/main/php.h: No such file or directory grep: /usr/include/php/Zend/zend_mo ...

  10. 【MySQL】MySQL解析用户权限管理

    一.MySQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你全力以内的事情,不可以越界.比如只允许你执行select操作,那么你就不能执行update操作.只允许你从某台机器上连接m ...