C# Xamarin移动开发项目实战篇
一、课程介绍
在前面阿笨的《C# Xamarin移动开发基础进修篇》课程中,大家已经熟悉和了解了Xamarin移动App开发的基础知识和原理。本次分享课《C# Xamarin移动开发项目实战篇》,阿笨将直接带领大家进入Xamarin for android的实战项目环节,真真体验一下xamarin开发的魅力吧。
由于阿笨学习Xamarin也是“半路出家”,“赶鸭子上架”的状态,视频教学中关于Xamarin for Android的知识点难免有不足和不完善的地方,希望大家能够多多交流和互相学习。阿笨保证的一点是把自己知道的知识尽量的毫无保留全部都给大家进行分享。
本次分享课程适合人群如下:
1、 热爱Xamarin跨平台移动开发。
2、进一步了解和学习Xamarin For Android移动开发实战知识。
本次分享课包含实战分享知识点如下:
1、Android 线程实际场景运用(UI Thread)
2、Android播放Assets目录下的音乐
3、Xam.Plugins.Settings插件存储应用程序配置信息。
4、Android漂亮的导航菜单栏控件(Navigation Bar)
5、Android漂亮的下拉列表控件(ComboBox Bar)
6、Android漂亮的Loading提示控件(ProgressDialog)
7、Android漂亮的主菜单界面(GridView)
8、Android漂亮的列表展示数据(ListView)
9、 C# Xamarin App之打包APK文件和自动升级
10、思考与探讨移动架构设计
1)、C#如何设计我们的Android移动项目框架。
2)、Android如何友好的记录HTTP服务接口请求日志。
本次分享课程最终目标:
希望学完本次分享课程后能够快速通过Xamarin For Android打造一个后台管理系统App应用程序,从而将学习成果转化为工作成果。
废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。
二、Xamarin For Android项目实战示例演示
三、C# Xamarin移动开发项目实战分享
3.1、Android 线程实际场景运用( UI Thread)
主线程也叫UI线程
当一个程序启动的时候,系统自动创建一个主线程,在这个主线程中,你的应用(app、winform等客户端程序)和UI组件发生交互,负责处理UI组件的各种事件,所以主线程也叫UI线程。
UI组件的更新一定要在UI线程里
android为了线程安全,不允许在UI线程外的子线程操作UI,这个结论不仅仅是说android,这个概念同样适用于其他的客户端系统,它的好处时提高客户端UI的用户体验和执行。
3.2、Android播放Assets目录下的音乐
Android assets的作用:
1: 可以用来实现html5+javascript+android的混合开发中,一般html5和javascript以及相关资源可以存放在Assets文件夹内。
2:可以放一些资源文件
3.3、Xam.Plugins.Settings插件存储应用程序配置信息。
在Nuget命令行中输入如下的命令即可。
Install-Package Xam.Plugins.Settings
主要是CrossSettings.Current对象和它的2个函数GetValueOrDefault、AddOrUpdateValue,这2个函数的功能看名字应该就非常清楚了。
// 从设置中获取指定Key的值,并转换成相应的类型。GetValueOrDefault(stringkey);// 向设置中添加制定key的值,如果已存在key则是更新当前值。AddOrUpdateValue(stringkey,Tvalue);
设置的生命周期与应用程序一样,当应用程序被卸载时清空。
3.4、Android漂亮的导航菜单栏控件(Navigation Bar)
Android手机可分为有导航栏以及没导航栏两种,一般有物理按键的机器不会带有导航栏,而没有物理按键的机器则基本会带,比如华为的手机基本都是带导航栏的。因此需要自定义重写一个Navigation控件。
3.5、Android漂亮的下拉列表控件(ComboBox Bar)
Spinner这个词可能有些陌生,在Java中,就是ComboBox。由于Android 系统的Spinner 控件无法满足项目的要求,所以自定义重写了一个ComboBox控件。
3.6、Android漂亮的Loading提示控件(ProgressDialog)
ProgressDialog可以在当前界面弹出一个置顶于所有界面元素的对话框,同样具有屏蔽其他控件的交互能力,用于提示用户当前操作正在运行,让用户等待;以下就是ProgressDialog的使用步骤:
1.创建一个ProgressDialog的实例;
2.设置其标题;
3.设置其内容;
4.设置可否使用back键返回,这里设置若是为progressDialog.setCancelable(flase),则要在数据加载完成后调用ProgressDialog的dismiss()来关闭对话框;
5.将对话框显示出来。
3.7、Android漂亮的主菜单界面(GridView)
GridView与ListView的用法基本一致,不同的只是布局。当我们打开手机,应用会以宫格显示,那就是GridView。
以代码形式展示给大家,适配器使用SimpleAdapter,熟悉了适配器的用法,就只需要注意几个GridView的属性即可。
ListView 和 GridView 是 AdapterView 的子类,它们可以绑定填充到一个适配器,从外部源检索数据,并创建一个视图表示每个数据项。
3.8、Android漂亮的列表展示数据(ListView)
GridView与ListView的用法基本一致,不同的只是布局。当我们打开手机,应用会以列表显示,那就是GridView。
ListView 和 GridView 是 AdapterView 的子类,它们可以绑定填充到一个适配器,从外部源检索数据,并创建一个视图表示每个数据项。
3.9、C# Xamarin App之打包APK文件和自动升级
详细可以参考《C# Xamarin App之打包APK文件和自动升级》课程。
三、思考与探讨移动架构设计
3.1、C#如何设计我们的Android移动项目框架。
3.2、Android如何友好的记录HTTP服务接口请求日志。
四、总结
阿笨当初学习Xamarin也就花了三天的时间就开发出了视频中的App雏形。所以说大家不要认为xamarin for android 开发有多么的困难,现在微软也大力在更新xamarin,之后对我们开发者来说只有越来越方便的了。
学习Xamarin For Android移动开发,阿笨总结了两点:
1、具备一定的C#语言基础开发知识。只要你有一定的C#语言基础,那么上手Xamarin开发将毫无压力。
2、掌握一定的Android基础原理和知识。
Android界面布局(Layout)和常用的控件的使用以及Android原理知识这几点必须要有一定的掌握,可以学习从java android 方面的视频课程,因为这块的android知识都是一样的,跟开发语言并没有什么太大的关系。
俗话说的好:师父领进门修行在个人,希望大家在学习的道路上一直坚持下去!
五、在线源码观看地址
C# Xamarin移动开发项目实战篇的更多相关文章
- C# Xamarin移动开发基础进修篇
一.课程介绍 英文原文:C# is the best language for mobile app development. Anything you can do in Objective-C, ...
- NET 分布式架构开发项目实战
.NET 分布式架构开发项目实战 从头到尾,一步一步讲述一个真实的项目实战,关注点主要是架构的思考和实现,以及如何解决平时项目遇到的一些问题. 同时也司公布源代码. 如何构建高性能,稳定SOA应用之- ...
- 洗礼灵魂,修炼python(82)--全栈项目实战篇(10)—— 信用卡+商城项目(模拟京东淘宝)
本次项目相当于对python基础做总结,常用语法,数组类型,函数,文本操作等等 本项目在博客园里其他开发者也做过,我是稍作修改来的,大体没变的 项目需求: 信用卡+商城: A.信用卡(类似白条/花呗) ...
- NetCore项目实战篇08---Docker挂载mysql并连接.netCoreWeb
我们的项目之前在直接连接的mysql,今天我们将通过docker挂载mysql 并与我们开发的webapi项目连接. 1. 安装docker 下载地址: https://download.docker ...
- 《ASP.NET Core应用开发入门教程》与《ASP.NET Core 应用开发项目实战》正式出版
“全书之写印,实系初稿.有时公私琐务猬集,每写一句,三搁其笔:有时兴会淋漓,走笔疾书,絮絮不休:有时意趣萧索,执笔木坐,草草而止.每写一段,自助覆阅,辄摇其首,觉有大不妥者,即贴补重书,故剪刀浆糊乃不 ...
- NetCore项目实战篇06---服务注册与发现之consul
至此,我们的解决方案中新建了三个项目,网关(Zhengwei.Gateway).认证中心(Zhengwei.Identity)和用户资源API(Zhengwei.Use.Api).当要访问用户API的 ...
- hyperledger 儿童车级开发项目实战----投票系统(1)
今天根据hyperledger 企业级开发项目实战视频,自己做了一个投票demo.在这做个记录 首先编写智能合约 在$GOPATH的的src路径下创建项目的名称,我的是mkdir vote 然后创建c ...
- 洗礼灵魂,修炼python(73)--全栈项目实战篇(1)——【转载】前提准备之学习ubuntu
本篇是为项目实战做准备,学习Linux是必备的,不然都不好意思叫全栈对吧?下面是一位资深大神写的文章,够详细,我也不用浪费时间再写了 原文链接:Ubuntu学习——第一篇 内容: 一. Ubuntu简 ...
- Net core项目实战篇01---EFCore CodeFirs For Mysql 数据库初始化
从今天开始我们用Net Core进行项目实战,采用微服务构架,因此你会看到我各模块开始都是用的web api.项目中的代码直接可以复制.费话不多说,现在就来跟我一起开始吧! 1.打开VS2017—&g ...
随机推荐
- noi2018d2t1
题解: ex-crt 学习见https://www.cnblogs.com/Miracevin/p/9254795.html hdu2891 #include <cstdio> #incl ...
- mysql基本操作(二)
1.向表msg中插入数据,先创建表,再插入数据 mysql> create table msg ( -> id int, -> title varchar(60), -> na ...
- BZOJ2219 数论之神 数论 中国剩余定理 原根 BSGS
原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ2219.html 题目传送门 - BZOJ2219 题意 求同余方程 $x^A\equiv B \pmo ...
- log4j和logback会互相冲突
当两个都存在同一个项目的时候,本来应该走log4j的日志可能会走logback,导致日志级别问题等错误. 如果出现日志级别不受配置文件控制,可根据源代码走,找到原因.
- Windows10 下Apache服务器搭建
Windows10 下Apache服务器搭建 转 https://blog.csdn.net/sunqian666888/article/details/78561399 目录 一.软件下载 二. ...
- HDU 3639 Hawk-and-Chicken (强连通缩点+DFS)
<题目链接> 题目大意: 有一群孩子正在玩老鹰抓小鸡,由于想当老鹰的人不少,孩子们通过投票的方式产生,但是投票有这么一条规则:投票具有传递性,A支持B,B支持C,那么C获得2票(A.B共两 ...
- HDU1029 Ignatius and the Princess IV (水题)
<题目链接> 题目大意:给你一段序列,问你在这个序列中出现次数至少为 (n+1)/2 的数是哪个. 解题分析: 本题是一道水题,如果用map来做的话,就非常简单,但是另一个做法还比较巧妙. ...
- HDU 3415 Max Sum of Max-K-sub-sequence【单调队列】
<题目链接> 题目大意: 给你一段从1~N的圆形序列,要你求出这段圆形序列中长度不超过K的最大连续子序列之和是多少,并且输出这子序列的起点和终点. 解题分析: 既然是求连续子序列之和,我们 ...
- POJ 3579 Median 【二分答案】
<题目链接> 题目大意: 给出 N个数,对于存有每两个数的差值的序列求中位数,如果这个序列长度为偶数个元素,就取中间偏小的作为中位数. 解题分析: 由于本题n达到了1e5,所以将这些数之间 ...
- mybatis之级联关系(一对一、一对多)
0. 表结构 1. 准备工作 1.1 配置文件等信息,请参考 myBatis之入门示例 1.2 entity 1.2.1 TPersonInfo.java package com.blueStarW ...