挺蛋疼的一件事,这两天总是准备去学习一下windows Phone8的开发,但是始终找不到啥好的资料,要么是资料都不是很基础的讲解。今儿把手头的资料整理了一下,索性从今天开始就把windows phone的开发作为我的一个学习的过程,顺便把笔记都整理一份出来,也同时方便和我一起学习的朋友。为了方便我们大家一起学习和讨论,我开设了一个群300143953。专门关于windows phone开发学习的群。因为群刚建,所以没人。欢迎大家。另外如果出现啥错误性的问题,希望大家能够指出。毕竟我也是刚刚接触。
1.搭建环境
1.1环境要求
a.操作系统为windows8 64位版本
b.系统盘至少8G的剩余空间
c.内存空间至少达到4G以上
d.Windows phone 模拟器是基于hyper-V,需要CPU支持2级地质转换技术(需要开启虚拟化技术,或者启动hyper-V服务)
1.2开发工具的安装
1.书中记载:
1.可以下载一个visual Studio 2012的测试版或者是专门针对于windows phone开发的版本;
2.windows Phone Emulator 模拟器。
3.Windows phone Expression Blend for Windows Phone 这个是XAML ui设计工具,当开发 silverlight程序时,可以结合VS2012来开发,相当NX。
2.个人体会:
a) 下载了一个VS2012的测试版,该版本已经综合了开发所需要个环境,就差一个SDK;
b) 下载了一个VS2012的SDK离线版安装。
2. 创建windows phone8 的应用
2.1 创建出hello Word的应用项目
1. 新建windows phone应用程序:
a) 打开VS2012
b) 选择file菜单;
c) 选择新建new Project,新建windows phone application 工程。
(建议使用英文版,我是下载的时候下载错了,就凑合用吧)
2. 选择windows Phone SDK版本号
3. 编写程序代码
这就是他打开的一个见面,他左边有一个工具箱,我想应该是叫tools吧,反正应该可以找到,选择里边的textBlock和button拖到手机框里,想要谁的单击事件,就双击谁进去。比如说双击button,是按钮的单击事件。
代码如下:
private void button1_Click(object sender,RoutedEventArgs e){
textBlock1.Text = “Hello word”;
}
他的意思就是单击按钮,将值赋值给textblock
2.2解析hello Windows phone 应用
在windows phone的应用项目中呢,他的组成结构是啥样的呢?他大概可以分为以下几个部分:
Mainpage.xaml
Mainpage.xaml.cs
App.xaml
App.xaml.cs
WMAppManifest.xml
AppManifest.xml
AssembyInf.cs
其他(图片文件)
清单文件列表介绍:
2.2.1 MainPage.xaml文件:这个相当于Android中的布局文件。
详解:
phone:PhoneApplicationPage,这个根节点中主要是说明当前的应用为phone手机开发,下边的这些命名空间主要是一些约束和引用。这些命名空间的含义如下:
1>xmlns代表的是默认空间,如果在UI里边的空间里没有前缀则代表它属于默认的名字空间,例如Grid标签前就没有添加,它表示属于该空间。
2>xmlns:x代表专属的名字空间,比如一个空间里面有一个属性叫Name,那么x:Name则代表这个xaml的名字空间
3>xmlns:phone包含在Miscroft.phone的饮用DLL控件
4>xmlns:shell包含在miscroft.sell的引用DLL,此文件可以帮助管理生命周期。
5>xmlns:d呈现一些设计时的数据,而应用真正运行时会帮助我们忽略掉这些运行时的数据。
6>xmlns:mc布局的兼容性,这里主要配合d来使用,它包含Ignorable属性,可以在运行时忽略掉这些设计时的数据
你妹的,写的真拗口,官面上的文章永远让人蛋疼。
简单说一下个人的理解吧:
简单理解其实就是申明了一下这个控件隶属于那个应用。然后这个应用下还要申明使用了哪儿的dll文件,以及一些简单约束。哦了,就这么看。否则我自己写的我都不知道写的啥。不对再改。
LayoutRoot是phoneApplicationPage的根Grid,所有页面内容全部位于layoutroot中;
TitlePanel是拥有两个TextBlock控件的StackPanel,这个就相当于一个面板。这两个控件是text1和text2.text1的”text”是说在文本中需要显示的名字。后期会就这些属性挨个介绍一下。
2.2.2 NainPage.xaml.cs文件
详解:
Application是对整个应用程序进行加载。如果你需要在应用程序中加载同样样式的话,需要在这个节点下添加公用的样式。其中Application.ApplicationLifetimeObjects标签内自定I了应用程序的启动过程,程序的关闭过程程序的重新激活,失去激活,这些时间都在APP.xmal.cs中进行了说明.
2.2.4 App.xaml.cs文件
解析:
app.xaml.cs文件是一个控制着整个应用程序的全局文件,整个应用程序的生命周期都是在该文件中进行定义和处理,那么这里又涉及到一个问题,windows phone的生命周期是啥样的呢?
启动-----》运行-----》关闭------》禁止--------》激活
生命周期详解:
启动(Launching):这个指的是当单击了某一个应用程序,该程序就被启动,实例被创建,当应用程序被启动后,处理这个启动事件时,应用程序应该是从一个独立的存储中读取所有必要的数据来为用户创建一个新的应用程序的绘画进程,应用程序不应该从以前的应用程序实例中恢复过来。需要注意的是:启动和激活的事件时互斥的。
真蛋疼啊大晚上的。简单理解是啥呢,就是说当我们从手机界面来开启程序的时候,这个属于启动,也就是launching。
运行(Running)当启动事件被触发后,一个程序就开始运行了。当应用程序处于运行状态时,用户进行浏览该应用的时候就可以进行相应的操作。
关闭(Closing)当程序处于运行状态后,用户按着后退键,一直按到程序退出,这时候应用会被关闭。在关闭的过程中,应用程序应该把所有的持久化数据保存到独立的存储空间中,
禁止(Deactivating)如果一个应用程序正在运行,随后在操作系统前台被另一个应用程序所替代或者覆盖,就会触发。最常见的比如说锁屏。
激活(Activating)这个指的是当被禁止后的程序再次呈现在应用中时,这个程序有可能会继续运行,这时候属于激活状态。把禁止的玩意儿给激活了。这理解有点蹩脚。
2.2.5 WMAppManifest.xml文件
解析:
这个文件呢主要是一个包含于windows phone silverlight 应用程序相关的特定元数据的清单文件,记录了应用程序的相关属性,描述且包含了用于windows phone的silverlight所具有的特定功能。App节点下的一些属性的含义如下所示:
ProductID 代表应用程序的GUID字符串列表
Title 应用程序的预设名称
RuntimeType 设定应用程序是silverlight还是xna的类
Version 应用程序的版本
Genre 当应用程序为silverlight时会为apps.normal
Author 作者名字
Description 应用程序的描述
Publisher 这个和push消息推送有关系。
PublisherID 同上。
<Capabilities>描述一个应用能够使用的功能,例如,能不能使用网络,能不能使 用内置媒体柜等
<Tokens>包含了程序相关的图标或者是磁贴的设置。
<.ScreenResolutions>三种屏幕适配
2.2.6 AppMainfest.xml文件
解析:
这个文件是一个应用程序包所必需的应用程序清单文件
2.2.7 AssemblyInfo.cs文件
解析:
这个主要包含名称和版本的元素数据,这个数据将被嵌入到生成的程序集中。