怎样用VS2017开发android
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用VS2017开发android相关的知识,希望对你有一定的参考价值。
你学习编程连基本的概念都没搞明白C++是一门语言,一个标准,它有ISO C++标准,但从未有过C++6.0这个语言或工具只有上世纪就已淘汰的微软出品的VC++6.0,它是一个c++的开发工具而C++开发工具,有很多的,如dev-cpp,c-free,code::blocks,c++builder及微软的VS系列而VS是一个集成开发环境,它除支持C++语言外,还支持C语言(它与C++不是同一语言),C#,VB.NET,若安装了插件,它甚至可以支持php,PYTHON,JAVA等语言的我上面说过,VC++6.0是上世纪就已淘汰的开发工具,它的很多语法及格式不符合新的C++标准的,所以在VS上不能用很正常,你必须将它改成标准的C++程序,才能在VS2017的C++项目下编译运行,另外,在VS2017中还要注意生命开发周期(SDL)检查及字符集的问题(缺省你是不能输出中文的)所以,我的建议是,既不要用古老淘汰的VC++6.0,也不要用复杂专业的VS2017用个dev-cpp对初学者足够了 参考技术A 在安装程序中安装使用.Net的移动开发这个套件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添加两个按钮和一些简单的代码后调试运行效果图:
以上是关于怎样用VS2017开发android的主要内容,如果未能解决你的问题,请参考以下文章