【Xamarin开发 Android 系列 3】循序渐进的学习顺序

简介: 原文:【Xamarin开发 Android 系列 3】循序渐进的学习顺序指定合理的学习步骤,将各个技术点进行强化。慢慢 的就从点到线 到面的飞跃,一切仅仅是时间问题,开始前,请记住,学习是最佳的投资方式。
原文: 【Xamarin开发 Android 系列 3】循序渐进的学习顺序

指定合理的学习步骤,将各个技术点进行强化。慢慢 的就从点到线 到面的飞跃,一切仅仅是时间问题,开始前,请记住,学习是最佳的投资方式。风险成本极小,但是收货极佳。

用最小的杠杠,撬动爆发力极强的财富,那就是学习和经验的累积的过程! 

 

 

【学习顺序-1 国内篇】

【Xamarin Android开发实战基础篇】


第1章 Xamarin开发Anroid应用介绍 1
1.1 Xamarin基本知识 1
1.1.1 Xamarin发展 1
1.1.2 Xamarin工具 1
1.2 Android基本知识 2
1.2.1 Android版本介绍 2
1.2.2 Android系统介绍 3
1.3 如何使用Xamarin开发Android应用 3
1.3.1 Android开发工具 3
1.3.2 Xamarin开发工具 4
1.3.3 VS 2013介绍 4
第2章 环境搭建 6
2.1 下载安装Visual Studio 2013 6
2.1.1 下载Visual Studio 2013 6
2.1.2 安装Visual Studio 2013 7
2.2 下载安装JDK 12
2.2.1 下载JDK 12
2.2.2 安装JDK 14
2.3 下载安装Android SDK工具 18
2.3.1 下载Android SDK工具 18
2.3.2 配置Android SDK 20
2.3.3 下载安装Android NDK 23
2.3.4 新建Android模拟器 24
2.4 下载安装Xamarin 26
2.4.1 下载安装GTK# 27
2.4.2 下载安装Xamarin Studio 29
2.4.3 下载安装Xamarin.VsualStudio 34
2.5 验证环境配置是否正确 35
2.5.1 下载并加载官方实例 35
2.5.2 检验实例的使用 38
第3章 Android中的界面布局 45
3.1 Android界面布局介绍 45
3.1.1 新建Android项目 45
3.1.2 界面布局介绍 47
3.2 线性布局LinearLayout 49
3.2.1 垂直线性布局 49
3.2.2 水平线性布局 53
3.3 相对布局RelativeLayout 57
3.3.1 相对于父容器的布局 57
3.3.2 相对于控件的布局 60
3.4 表格布局TableLayout 66
3.4.1 表格布局的介绍 66
3.4.2 TablLayout的使用 67
3.5 网格布局GridLayout 70
3.6 帧布局FrameLayout 72
第4章 简单控件 74
4.1 控件构成 74
4.1.1 什么是Android中的控件 74
4.1.2 Android控件的使用 74
4.2 文本类控件 76
4.2.1 使用TextView控件 76
4.2.2 使用EditText控件 81
4.3 按钮类控件 87
4.3.1 Button控件使用 87
4.3.2 ImageButton控件使用 90
4.3.3 ToggleButton控件使用 93
4.3.4 RadioButton控件使用 94
4.3.5 CheckBox控件使用 99
4.4 图片控件ImageView 103
4.5 时钟控件 104
4.6 时间日期控件 105
4.6.1 TimePicker控件使用 105
4.6.2 DatePicker控件使用 107
第5章 实现应用的Activity 109
5.1 Activity介绍 109
5.1.1 Activity类 109
5.1.2 Activity生命周期 110
5.2 重新学习创建应用 114
5.2.1 创建应用 114
5.2.2 保存和恢复Activity的状态 115
5.3 使用两个Activity 119
5.3.1 启动第一个Activity--主Activity 119
5.3.2 创建并启动第二个Activity 122
5.3.3 在两个Activity之间转换 128
5.4 在两个Activity之间传递数据 130
5.4.1 传递数据到目的Activity 131
5.4.2 返回Activity的数据 133
5.5 提前了解Intent和IntentFilter 135
5.5.1 Intent的类介绍 135
5.5.2 IntentFilter介绍和使用 137
第6章 Service类和Android服务 142
6.1 Service类及Service简介 142
6.1.1 Service类 142
6.1.2 Service介绍 142
6.2 创建Service 143
6.2.1 Service的创建 144
6.2.2 绑定Activity的Service的创建 148
6.3 Service通信 151
6.3.1 Service通信 151
6.3.2 使用Message实现Service通信 155
6.4 系统提供的Service 160
6.4.1 电话管理--TelephonyManager 160
6.4.2 短信管理--SmsManager 163
6.5 广播接收BroadcastReceiver 166
第7章 数据存储和读取 168
7.1 文件存储 168
7.1.1 使用Asstes中的文件 168
7.1.2 读写SD卡中的文件 170
7.2 SQLite中的数据读写 175
7.2.1 使用ADO.NET创建数据库 175
7.2.2 使用特殊类SQLite创建数据库 179
7.2.3 使用SQLite组件创建数据库 184

第8章 高级控件操作 1
8.1 ListView和Adapter 1
8.1.1 ListView的组成和函数 1
8.1.2 通常使用的ListView 1
8.1.3 自定义ListView 5
8.2 自动补全 9
8.3 ActionBar的实现 11
8.4 Popup Menus弹出式菜单 14
8.5 下拉列表 16
8.6 启动动画 18
第9章 图像和动画 21
9.1 获取并显示图片 21
9.1.1 assets中的图片 21
9.1.2 打开相机拍下的照片 24
9.2 绘图 27
9.2.1 绘图类的介绍 27
9.2.2 绘制基本图形 28
9.3 动画 30
9.3.1 使用Android默认动画 30
9.3.2 自定义的补间动画 36
第10章 多媒体应用 41
10.1 Audio音频操作 41
10.1.1 MediaPlayer类简介 41
10.1.2 播放Audio音频文件 41
10.1.3 录制Audio音频 44
10.2 Video视频操作 48
10.2.1 Video视频播放 48
10.2.2 录制Video 50
10.3 有关Camera相机的操作 53
第11章 手势处理 56
11.1 触摸屏手势 56
11.1.1 GestureDetector简介 56
11.1.2 测试所有触控事件 57
11.2 输入法手势 60
11.2.1 Gesture相关类简介 60
11.2.2 输入法手势应用 61
第12章 传感器 64
12.1 Sensor简介 64
12.1.1 Sensor种类 64
12.1.2 开发Sensor基础 64
12.2 常用传感器介绍 68
12.2.1 磁场传感器 68
12.2.2 重力传感器 70
12.2.3 光传感器 73
12.2.4 近距离传感器 75
12.2.5 气压检测 77
第13章 网络应用 81
13.1 网页视图WebView 81
13.1.1 WebView简介 81
13.1.2 使用WebView 81
13.1.3 显示HTML内容 85
13.2 Socket的使用 87
13.3 HTTP网络通信 89
13.3.1 HTTP通信方式 90
13.3.2 HttpURLConnection开发 90
13.4 URL网络通信 92
13.4.1 URL介绍 92
13.4.2 使用URL获取资源 93

【学习顺序-2 外教篇】
《c#开发android应用实战——使用mono for android和.net/c#》
第1章 android、移动设备和marketplace简介 1
1.1 产品比较 1
1.1.1 .net framework 2
1.1.2 mono 3
1.1.3 mono for android 4
1.1.4 开发工具 6
1.2 移动开发 6
1.2.1 解决支持问题 7
1.2.2 设计问题 7
1.3 android 8
1.3.1 android发展简史 8
1.3.2 为android编写基于web的应用程序 9
1.3.3 为android编写本机应用程序 9
1.3.4 android开发问题 9
1.3.5 android sdk工具 11
1.3.6 android开发成本 11
1.4 跨平台替代方案 12
1.4.1 其他跨平台工具 12
1.4.2 选择跨平台工具时的注意事项 12
1.5 小结 15
第2章 mono for android简介 17
2.1 开始开发前的准备工作 17
2.1.1 mono的含义 17
2.1.2 mono for android的含义 18
2.1.3 使用mono for android的原因 18
2.1.4 在使用mono for android时需要权衡的事项 20
2.1.5 mono for android开发环境需要的其他工具 21
2.2 利用mono for android进行visual studio开发 24
2.2.1 一般设置 24
2.2.2 生成hello android 25
2.2.3 日志记录 28
2.2.4 调试 29
2.2.5 测试 29
2.2.6 部署 30
2.3 使用monodevelop进行mono for android开发 30
2.3.1 一般设置 30
2.3.2 构建hello android 31
2.3.3 日志记录 32
2.3.4 调试 33
2.3.5 测试 33
2.3.6 部署 33
2.4 小结 34
第3章 了解android/mono for android 应用程序 35
3.1 android应用程序的含义 36
3.1.1 android应用程序的构建基块 37
3.1.2 组件之间的通信:android意图 46
3.2 绑定组件:android清单 48
3.2.1 android清单的基础知识 48
3.2.2 通过visual studio为mono for android编辑清单 51
3.3 小结 53
第4章 规划和构建应用程序用户界面 55
4.1 成功构建移动ui的指导原则 55
4.2 构建android ui 56
4.2.1 视图 56
4.2.2 设计表面 57
4.3 选择控件布局 57
4.3.1 absolutelayout 58
4.3.2 framelayout 59
4.3.3 linearlayout 59
4.3.4 relativelayout 61
4.3.5 tablelayout 62
4.3.6 优化布局 64
4.4 设计自己的用户界面控件 64
4.4.1 textview 66
4.4.2 edittext 66
4.4.3 autocompletetextview 66
4.4.4 spinner 67
4.4.5 button 69
4.4.6 checkbox 69
4.4.7 radiobutton和组 69
4.4.8 clock 72
4.4.9 picker 72
4.4.10 image 75
4.4.11 虚拟键盘 80
4.5 控制菜单 82
4.5.1 菜单系统介绍 83
4.5.2 菜单 83
4.5.3 子菜单 85
4.5.4 上下文菜单 86
4.5.5 将菜单定义为资源 87
4.6 独立于分辨率的ui 90
4.6.1 支持各种屏幕资源 90
4.6.2 使用android market支持 92
4.6.3 多个屏幕分辨率的最佳做法 92
4.7 构建用户界面:手机和平板电脑示例 93
4.8 小结 98
第5章 使用数据 99
5.1 使用sqlite 99
5.1.1 建立数据库 100
5.1.2 建立表 101
5.1.3 使用sql语句 102
5.2 升级策略 104
5.2.1 就地升级 104
5.2.2 复制数据 105
5.3 特定于android的数据库选项 105
5.4 使用远程数据 107
5.4.1 访问企业服务 108
5.4.2 使用soap 109
5.4.3 使用基于rest的web服务 113
5.4.4 使用json 114
5.4.5 利用post发送数据 118
5.5 使用linq和xml检索数据 119
5.6 以负责任的态度使用web服务 121
5.7 使用远程sql server数据库 122
5.8 小结 124
第6章 将数据绑定到控件 125
6.1 mono for android中的数据绑定 126
6.1.1 数据适配器的含义 126
6.1.2 适配器视图的含义 127
6.1.3 这三项彼此之间的关联方式 127
6.1.4 使用适配器视图和大型数据集 128
6.1.5 进一步探究适配器 130
6.1.6 使用本机适配器 130
6.1.7 进一步探究适配器视图 131
6.1.8 使用本机适配器视图 132
6.2 使用光标 132
6.2.1 使用光标填充spinner 132
6.2.2 使用带有gallery的光标 140
6.3 使用列表 147
6.3.1 在列表中显示简单数据 148
6.3.2 使用android的listadapter 150
6.3.3 使用自定义列表适配器来自定义listview 152
6.3.4 处理listview事件 158
6.3.5 首选项屏幕 160
6.3.6 嵌套导航 163
6.3.7 分组列表 165
6.3.8 在网格中显示数据 169
6.4 小结 174
第7章 使用文件系统和应用程序首选项 175
7.1 使用文件系统 175
7.1.1 文件系统类型和结构 176
7.1.2 quickedit示例程序:使用文件存储的例子 180
7.2 使用应用程序首选项 186
7.2.1 应用程序首选项类型 186
7.2.2 创建自己的应用程序首选项 187
7.2.3 首选项程序 188
7.2.4 侦听首选项的更改 194
7.2.5 处理xml 195
7.3 小结 196
第8章 针对设备硬件编程 197
8.1 使用传感器 197
8.1.1 引用传感器管理器 198
8.1.2 传感器支持 198
8.1.3 访问传感器 198
8.1.4 使用传感器 199
8.1.5 了解传感器类型值 200
8.2 对加速度的响应 202
8.2.1 使用xyz坐标系 202
8.2.2 对加速计进行编码 203
8.3 构建电子罗盘 203
8.4 振动 208
8.5 网络连接 209
8.5.1 connectivitymanager 209
8.5.2 检查用户通信首选项 209
8.5.3 检查backgrounddatasetting的更改 210
8.5.4 检查当前网络配置 211
8.5.5 创建网络连接通知 211
8.5.6 wifimanager 211
8.6 bluetooth管理器 216
8.7 在应用程序中启用语音识别功能 218
8.8 获取建议路线规划指示 219
8.9 小结 225
第9章 使用多媒体——音频、视频和照相机 227
9.1 android媒体类 227
9.2 播放音频和视频 229
9.2.1 媒体播放器支持的格式 229
9.2.2 音频播放编程 230
9.2.3 视频播放编程 233
9.2.4 控制播放 237
9.2.5 管理播放输出 237
9.3 录制音频和视频 237
9.3.1 使用意图来录制视频 238
9.3.2 使用媒体记录器 241
9.4 图像和使用照相机 244
9.4.1 使用意图拍照 244
9.4.2 控制照相机 247
9.4.3 管理照相机设置和图片选项 247
9.5 向媒体存储器添加新媒体 253
9.5.1 使用媒体扫描程序 254
9.5.2 向存储器添加新媒体 255
9.6 语音识别 255
9.7 小结 257
第10章 与其他应用程序和库通信 259
10.1 android应用程序集成 259
10.1.1 打开浏览器 259
10.1.2 打开电子邮件 262
10.1.3 打电话 263
10.1.4 发送text/sms消息 264
10.1.5 在maps应用程序中打开位置 266
10.1.6 打开youtube视频 267
10.1.7 开放市场 267
10.2 应用程序集成 268
10.2.1 与hootsuite以及其他twitter应用程序的简单集成 268
10.2.2 配置意图过滤器 269
10.2.3 处理传入的意图请求 270
10.3 与联系人进行集成 270
10.3.1 显示联系人详细信息 273
10.3.2 选择联系人 274
10.3.3 创建新联系人 275
10.3.4 创建新联系人或者添加到现有的联系人 276
10.4 小结 277
第11章 开发后台服务和异步代码 279
11.1 服务生命周期 280
11.1.1 创建第一个服务 280
11.1.2 服务的优先级排序 283
11.2 使用线程进行异步处理 284
11.2.1 手动线程 284
11.2.2 利用system.threading.tasks 286
11.2.3 带有intentservice的隐式线程 288
11.3 与ui进行通信 289
11.3.1 使用binder和服务连接方法 289
11.3.2 使用广播接收器方法 292
11.3.3 使用静态事件方法 295
11.4 通知用户 298
11.4.1 通过警报和intentservice来调度意图 300
11.4.2 使用c2dm来推送消息 301
11.5 小结 310
第12章 画布和绘制资源类型:构建自定义android图形 311
12.1 在mono for android中使用图形 312
12.2 使用canvas对象 313
12.2.1 图形基元 314
12.2.2 canvas对象 315
12.2.3 paint对象 316
12.2.4 bitmap对象 317
12.2.5 组合在一起 317
12.2.6 选择最佳方法 337
12.3 2d图形库 338
12.4 使用绘制资源类型 339
12.4.1 作为xml资源的绘制资源类型 339
12.4.2 简单和复合的绘制资源类型 340
12.4.3 绘制资源类型的实际应用 340
12.5 小结 354
第13章 使用位置信息 357
13.1 理解位置的基本知识 358
13.1.1 确定位置 358
13.1.2 基于位置的数据中断 359
13.1.3 使用基于位置的服务 359
13.1.4 在模拟器上配置基于位置的应用程序 359
13.2 选择一个位置提供程序 361
13.2.1 确定哪些提供程序可供使用 361
13.2.2 根据标准查找位置提供程序 361
13.3 地理编码 363
13.3.1 前向地理编码 363
13.3.2 反向地图编码 365
13.4 构建接近警报 366
13.5 使用google maps 368
13.5.1 获取开发/调试md5指纹 369
13.5.2 获取生产/发布md5指纹 369
13.5.3 创建基于地图的活动 369
13.5.4 在布局文件中创建地图 371
13.5.5 使用覆盖的mapview控制器 372
13.6 小结 374
第14章 国际化和本地化 375
14.1 选择本地化策略 376
14.2 更新语言和区域设置 378
14.3 了解android本地化机制 379
14.3.1 设置默认资源 380
14.3.2 添加本地化支持 380
14.3.3 选择资源的详细过程 381
14.4 支持多语言 382
14.4.1 利用strings.xml文件 382
14.4.2 翻译文本 383
14.4.3 翻译控件文本 386
14.5 本地化其他资源 387
14.6 strings.xml的高级用法 391
14.6.1 字符串数组 391
14.6.2 复数 391
14.6.3 字符串替换 392
14.7 使用格式转换 394
14.7.1 格式化日期 395
14.7.2 格式化数字和货币 395
14.8 小结 396
第15章 在mono for android、monotouch和windows phone7之间共享代码 397
15.1 三大平台概述 397
15.1.1 mono for android 397
15.1.2 monotouch 398
15.1.3 windows phone 7 399
15.2 使用类库来分离代码 400
15.2.1 使用预处理器指令 400
15.2.2 mono for android 401
15.2.3 windows phone 7 402
15.2.4 monotouch 402
15.3 每种平台上可用的程序集 402
15.4 一个通用的类库 405
15.4.1 mono for android 407
15.4.2 monotouch 408
15.4.3 windows phone 7 409
15.5 汇总:创建一个跨平台应用程序 410
15.6 小结 422
第16章 准备并向market发布应用程序 423
16.1 准备应用程序 424
16.1.1 测试应用程序 424
16.1.2 找到关键的测试区域 425
16.1.3 用于测试的工具 426
16.1.4 与同事和用户一起进行测试 433
16.2 向android market发布应用程序 434
16.2.1 对应用程序进行版本控制 434
16.2.2 创建最终版本 435
16.2.3 为应用程序签名 437
16.2.4 上传到android market 441
16.3 小结 442
第17章 android平板电脑 445
17.1 分析android平板电脑市场 445
17.2 设计平板电脑ui 446
17.3 使用操作栏 447
17.3.1 删除操作栏 448
17.3.2 向操作栏添加项目 449
17.3.3 使用应用程序图标 452
17.3.4 向堆栈上方导航 453
17.3.5 添加并使用操作项 453
17.3.6 创建选项卡式界面 454
17.4 使用片段控制部分屏幕 455
17.4.1 创建片段 457
17.4.2 更多片段 461
17.5 小结 469
附录a 针对开发人员的一些提示以及mono for android的未来前景 471

目录
相关文章
|
3天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
26天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
12 0
|
1天前
|
网络协议 Shell Android开发
Android 深入学习ADB调试原理(1)
Android 深入学习ADB调试原理(1)
9 1
|
17天前
|
XML 开发工具 Android开发
构建高效的安卓应用:使用Jetpack Compose优化UI开发
【4月更文挑战第7天】 随着Android开发不断进化,开发者面临着提高应用性能与简化UI构建流程的双重挑战。本文将探讨如何使用Jetpack Compose这一现代UI工具包来优化安卓应用的开发流程,并提升用户界面的流畅性与一致性。通过介绍Jetpack Compose的核心概念、与传统方法的区别以及实际集成步骤,我们旨在提供一种高效且可靠的解决方案,以帮助开发者构建响应迅速且用户体验优良的安卓应用。
|
19天前
|
监控 算法 Android开发
安卓应用开发:打造高效启动流程
【4月更文挑战第5天】 在移动应用的世界中,用户的第一印象至关重要。特别是对于安卓应用而言,启动时间是用户体验的关键指标之一。本文将深入探讨如何优化安卓应用的启动流程,从而减少启动时间,提升用户满意度。我们将从分析应用启动流程的各个阶段入手,提出一系列实用的技术策略,包括代码层面的优化、资源加载的管理以及异步初始化等,帮助开发者构建快速响应的安卓应用。
|
19天前
|
Java Android开发
Android开发之使用OpenGL实现翻书动画
本文讲述了如何使用OpenGL实现更平滑、逼真的电子书翻页动画,以解决传统贝塞尔曲线方法存在的卡顿和阴影问题。作者分享了一个改造后的外国代码示例,提供了从前往后和从后往前的翻页效果动图。文章附带了`GlTurnActivity`的Java代码片段,展示如何加载和显示书籍图片。完整工程代码可在作者的GitHub找到:https://github.com/aqi00/note/tree/master/ExmOpenGL。
21 1
Android开发之使用OpenGL实现翻书动画
|
19天前
|
Android开发 开发者
Android开发之OpenGL的画笔工具GL10
这篇文章简述了OpenGL通过GL10进行三维图形绘制,强调颜色取值范围为0.0到1.0,背景和画笔颜色设置方法;介绍了三维坐标系及与之相关的旋转、平移和缩放操作;最后探讨了坐标矩阵变换,包括设置绘图区域、调整镜头参数和改变观测方位。示例代码展示了如何使用这些方法创建简单的三维立方体。
15 1
Android开发之OpenGL的画笔工具GL10
|
26天前
|
Android开发
Android开发小技巧:怎样在 textview 前面加上一个小图标。
Android开发小技巧:怎样在 textview 前面加上一个小图标。
12 0
|
6月前
|
开发工具 Android开发 iOS开发
使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件
使用vs2019学习xamarin时,创建新程序。使用模拟器真机等测试都报错如下图错误: ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231030-de8ce5fd.png?x-cos-security-token=r4KyZDEowPT0kGTL0LqE8EnwfN1Nzexadb05dcffed3939ff8d7591c528c01706nvpGSE93QwHpZM8NwhJNTZctNRQa0l3KDhEnqj8P7d8t
63 0
使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件
|
Java C# Android开发
.NET(WinCE、WM)开发转Android开发 ——Xamarin和Smobiler对比
WinCE从1995年诞生至今,已有20多年的发展历史,行业成熟方案覆盖范围广,从车载、工控、手持机都有涉及,且方案成熟。 近些年,Android以后来居上的态势,逐渐渗透至各行业领域,硬件手持大厂也把产品线重心向Android手持迁移,基于Android的行业解决方案越来越成熟,WinCE的开发人才流失,在WinCE解决方案上吃老本的企业寻求转型。