移动编程导论_第1页
移动编程导论_第2页
移动编程导论_第3页
移动编程导论_第4页
移动编程导论_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、移动编程导论 Introduction Of Mobile Programmingemail: lordst1第1章 PC及移动平台基础知识1.1 计算机发展简史及基础知识1.1.1 计算机发展简史 世界公认的第一台计算机ENIAC(电子数字积分与计算器)于1946在美国宾夕法尼亚大学诞生。按元器件来划分,至今电子计算机以经历了四个发展阶段:21.1.2 PC机的发展 PC机最初始是由IBM公司于1981年推出的微型机,当时的CPU采用Intel公司的8086/8088,操作系统采用Microsoft公司的MSDOS。它的使用遍及商业、政府、教育、家庭等很多应用领域。图二 IBM PC微型机外

2、观 IBM PC机外观31.1.3 计算机组成结构 下图是根据冯诺依曼的存储程序原理得出的计算机基本组成结构。其中控制器(CU)和运算器(AU)组成中央处理器(Central Processing Unit,简称CPU),即计算机的“大脑”。CPU和内存称为主机,输入设备和输出设备统称外围设备,或输入输出设备(I/O设备)。主存储器输入设备输出设备控制器运算器冯诺依曼型计算机基本组成CPU4年份影响因素和新技术1951-1955Hardware: Vacuum-tube computers; Languages: Assembly languages1956-1960Hardware: Mag

3、netic tape storage; core memories; transistor circuitsLanguages: FROTRAN,ALGOL 58,ALGOL 60,COBOL,LISP1961-1965Hardware: Families of compatible architecture; magnetic disk storageLanguages: COBOL-61,ALGOL 60(revised)1966-1970Hardware: Increasing size and speed and decreasing cost; minicomputers; micr

4、oprogramming; integrated circuits.Languages: FORTRAN 66,COBOL 65,ALGOL 68,BASIC1971-1975Hardware: Microcomputers; Age of minicomputers; small mass storage systems; decline of core memories and rise of semiconductor memories.Languages: Pascal, COBOL 74, C, Scheme, Prolog1976-1980Hardware: Commercial-

5、quality microcomputers; large mass storage systems; distributed computing Languages: Smalltalk, Ada, FORTRAN 771981-1985Hardware: Personal Computers; first workstations; video games; local-area networks; ArpnetLanguages: Turbo Pascal1986-1990Hardware: Age of microcomputer; rise of engineering workst

6、ation; RISC architectures; global networking; InternetLanguages: FROTRAN 90, C+1991-1995Hardware: Very fast inexpensive workstations and microcomputers; massively parallel architectures; voice; video; fax; multimediaLanguages: Ada 95, Process languages (TCL,PERL,PHP), Java表一、影响程序设计语言的一些因素51.2 计算机语言发

7、展史最初,电子计算机用机器语言来编制程序,如实现1+1的功能机器语言: 1010 0100 0000 0001 1000 0000 1100 0100 0000 0001后来出现汇编语言:MOV AH,1ADD AH,1机器语言和汇编语言都是低级语言。它们的优点是面向机器,运行速度快,但缺点是难以编制和阅读。1957年,出现了第一种高级语言FORTRAN(FORmula TRANslator),以接近人类的习惯编制写程序: A = 1+1FORTRAN的成功带动了高级语言的发展,1956-1960期间出现了COBOL、LISP等。随着硬件的速度增快,内存容量增大,60年代末出现了Basic语言

8、,70年代初出现了Pascal,C,90年代出现以跨平台编程为目的的Java语言。61.3 移动硬件平台的发展 20世纪90年代末,智能手机开始出现,直到Apple公司于2007年推出iPhone手机,2010年推出iPad,移动计算迅速进入人们的生活各个领域。iPhone iPhone是一款结合了照相手机、个人数码助理、媒体播放器以及无线通信设备的掌上设备、智能手机,拥有收发电子邮件、网页浏览等功能,并支持Wi-Fi、2G、3G和4G LTE连接,以及基于上述链接访问VPN服务器,实现虚拟专线网络服务。 第一代iPhone至iPhone 4S均采用9厘米(3.5英寸)LCD触摸显示屏24;i

9、Phone的触摸屏具有热感功能,用户可利用手指在触屏上滑动进行手机操作,用户还可利用多根手指进行多点触控操作。 iPhone手机的整体设计十分简洁,用户主要在触屏上进行操作,额外的按钮仅有5个,其中最常用的是在屏幕正下方的圆形按钮“Home Button”,Home Button主要用来关闭应用程序、唤醒手机、呼出任务管理。手机上方的条形按钮主要用来锁屏及唤醒手机,长按会呼出关机选项;在手机关闭状态中长按此按 钮,将会开启手机。iPhone侧面的3个按钮分别用来控制音量和调整静音。在第一代iPhone上,除Home Button外,其他按钮均为塑料材质;自iPhone 3G起,除Home Bu

10、tton外的按钮均为金属制。 iPhone的操作系统使用iOS。7iPad iPad,是一款苹果公司于2010年发布的平板电脑,定位介于苹果的智能手机iPhone和笔记本电脑产品之间,通体只有四个按键,与iPhone布局一样,具备浏览网页、收发邮件、普通视频文件播放、音频文件播放、一些简单游戏等基本的多媒体功能。由于采用ARM架构,不能兼容普通PC台式机和笔记本的程序,不具备办公的能力,但可以通过安装第三方软件来实现对OFFICE系列文件的阅读和简单编辑。iPad有用wifi上网的版本,也有wifi和3G上网都支持的版本。8Android手机操作系统 Android(读音:ndrid,中文俗称

11、安卓)是一个以Linux为基础的开源操作系统,主要用于移动设备,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)领导开发。 2008年左右,Google以Apache免费开源许可证的授权方式,发布了Android的源代码,让生产商推出搭载Android的智能手机,Android操作系统后来更逐渐拓展到平板电脑及其他领域上。 典型的Android手机生产商有HTC、三星程序开发 在早期的Android应用程序开发中,通常通过在Android SDK(Android软件开发包)中使用Java作为编程语言来开发应用程序。开发者亦可以通过在Android ND

12、K(Android Native开发包)中使用C语言或者C+语言来作为编程语言开发应用程序。同时Google还推出了适合初学者编程使用的Simple语言,该语言类似微软公司的Visual Basic语言。此外,Google还推出了Google App Inventor开发工具,该开发工具可以快速地构建应用程序,方便新手开发者。 从2012年1月1日起,App Inventor由麻省理工学院继续支持发展,改名为MIT App Inventor。9第2章 App Inventor程序开发2.1 App Inventor简介 App Inventor是一种可视化的、通过拖放进行编程的工具,可以在An

13、droid平台上建立应用程序。 你可以在基于浏览器图形用户界面设计器来设计用户界面接口,即程序的外观,然后可以像玩拼图一样来设计程序的动作。102.2 App Inventor开发环境配置计算机系统要求:Computer and operating system Macintosh (with Intel processor): Mac OS X 10.5 or higher Windows: Windows XP, Windows Vista, Windows 7, Win8 GNU/Linux: Ubuntu 8 or higher, Debian 5 or higherBrowser M

14、ozilla Firefox 3.6 or higherNote: If you are using Firefox with the NoScript extension, youll need to turn the extension off. See the note on the troubleshooting page. Apple Safari 5.0 or higher Google Chrome 4.0 or higher Microsoft Internet Explorer 7 or higher11访问,按该页面配置步骤配置计算机。12第一步: Prepare Your

15、 System (Java) 如果你的计算机没有安装Java运行环境,可以在如下地址下载并安装: 第二步,下载并安装App Inventor软件 按如下地址下载Windows版的 App Inventor软件: 13第四步A(使用Android设备调试程序): 使用WiFi连接Android设备来运行程序: (建议) 在你Android手机下载如下程序,并运行: 使用USB链接Android设备来运行程序: 步骤略14第四步B:使用模拟器来运行程序Open the Blocks Editor, and click the New emulator button at top of the wi

16、ndow.152)Youll get a notice saying that the emulator is starting, and asking you to be patient; starting the emulator can take a couple of minutes.163) The emulator will initially appear with an empty black screen (#1). Wait until the emulator is ready, with a colored screen background (#2). Even af

17、ter the background appears, you should wait until the emulated phone has finished preparing its SD card: there will be a notice at the top of the phone screen while the card is being prepared. You might also need to use your mouse on the emulated phone screen to unlock the device by dragging the gre

18、en lock button to the right (#3).174) The emulator works like a phone with some limitations (e.g., you cannot shake the emulator like you can do with a phone). After you unlock the emulator, click the Connect the Device. button and click the emulator. When the phone icon turns to green, it means the

19、 emulator is connected.181.校内用户 App Inventor 的Web地址: 2.APP Inventor的官方网站 192.3 用控件设计程序界面2.3.1 设计一个简单的”hello,class”应用步骤:1.在My Projectes界面,点击New,在ProjectName里输入“HelloClass”202.在Designer界面的Pallete面板中的Basic栏中将Label控件拖至Viewer的中手机的位置。213.在属性面板,按如右图作如下设置:将FontBold的勾打上将FontSize设置为50将Text设置为“同学们好”将TextAlignm

20、ent设置为center将TextColor设置为Blue将Width 设置为 Fill parent将Height 设置为60 pixels224.设置完之后,如右图235.点击Designer上的Save,保存工程。6.运行程序1)点击 “Open the Blocks Editor”,出现如下对话框,直接选择打开方式 Java(TM) Web Start Launcher(默认)。242).点击确定后,会从网站下载BlocksEditor.jar这个java程序到本机上运行,这个过程可以需要比较长的时间。3)下载完毕后,会自动运行BlockEditor.jar程序,然后出现出现Block

21、 Editor界面。4)如果要用模拟器运行程序,则在BlockEditor界面点击New emulator,会出现如右的模拟手机界面,该模拟器的标题是5554。将锁头向右拖动解锁。255)解锁后,回到Block Editor的界面,在 Connect to Device下拉框中会出现一个选项 emulator-5554,如下图,选择该选项。等待一段时间后,5554模拟器就开始运行HelloClass这个程序。结果如右。266)如果直接在手机上运行(以WiFi方式为例),则再Connect To Device下拉框直接选择WiFi,则会出现如下图。这时运行你手机上的MIT AICompanion

22、,可以通过扫描二维码,或者直接在手机上输入下面的QR码:svebsq.稍等一会,就可以看见手机上运行本程序的结果了。272.3.2 常用的控件和属性、事件和方法 控件(Components)是用来设计程序外观、或者完成特定功能的对象,每个控件都包含属性、事件和方法。 可视控件(Visible): 运行时可以看见的控件,如按钮、TextBox、Labels、 CheckBox 不可视控件(Non-visible): 运行时不可看见的控件,通过这些控件可以访问设备内部功能。如Texting可以发送和处理SMS文本,LocationSensor可以确定设备的位置,TextToSpeech可以将文本读

23、出声音,Clock是定时器。28属性(Properties) 存放了控件的一些信息,如Width(宽度)、FontSize(字体大小)、Text(显示的文本)。事件(Events) 每个控件可以响应一些特定的事件,以便当这些事件发生时可以执行一段动作,从而完成特定的任务。比如Button可以响应Click事件,当该按钮被点击时,那么在Click事件中定义的动作会被执行。 App Inventor提供一个可视化的“块”语言来定义动作。方法 每个控件会定义一些方法,这些方法可以完成特定的动作。比如:Canvas的DrawLine,TextBox的SetFocus。291.常用的控件1)Button

24、 按钮2)Canvas 画布3)CheckBox 检测框4)Image 显示图片5)Label 显示标题6)TextBox 文本输入框302.常见属性 每个控件的都包含多个属性,以控制该属性的外观、行为特征等。每个控件可能包含不同的属性,下面是比较常见的属性。1)Width:2)Height:3)Alignment: 位置的调整,通常有Left,center,Right4)Text:5)FontSize: 字体大小6)TextColor:文字颜色7)BackGroundColor:背景颜色8)Visible: 在屏幕显示或隐藏该控件313.事件 每个控件都会包含一些可以响应的事件,以便在这些事

25、件发生事,程序会执行一些动作,完成特定的任务。1)Click2)GetFocus3)LostFocus322.3.3控件的用法1.用Image显示一个图片步骤:1)新建一个工程文件: ShowPicture2)在Basic栏中将Image和Button两个控件依次拖至Screen1,并设置:Image1.Width : Fill ParentImage1.height: 350 PixelsButton1.Text:显示校门结果如右图。333)在Components面板底部点击“Upload New”上传两张相片: seagull.jpg和stu.jpg。 如右图所示。344)将Image1.

26、Picture设置为seagull.jpg。如右图所示。然后点击Open the Blocks Editor。355)在Blocks Editor中点击My Blocks,然后点击Button1,会出现与Button1相关的事件和属性。366)将Button1的Clock事件拖至右侧空白处。如右图一。再将Image1的“Set Image1.Picture”拖至Button1的Click事件中。 377)点击“Set Image1.Picture”块的右边,选择”text”,如右图所示。点击粗体的text,并将其改为stu.jg。382.用TextBox控件输入文本内容,点击Button,然后

27、再Label控件显示刚输入的内容。1)新建一个工程,命名为”comp”。2)在Screen Arrangement中,拖出一个“HorizontalArrangement”,将Width设置为:Fill Parent,Height设为30。然后依次拖出Label和TextBox至该HorizontalArrangement,并将TextBox1改名为tbYourName,然后作如下设置 :Label1.Text: 姓名tbYourName.Hint:请输入您的姓名393)在Screen Arrangement中,拖出一个“HorizontalArrangement”,将Width设置为:Fil

28、l Parent,Height设为30。然后拖出两个Label,并将第二个Label改名为lblYourName。属性做如下设置:Label2.Text: 您的姓名是:lblYourName.Text:空白404) Screen Arrangement中,拖出一个“HorizontalArrangement”,将Width设置为:Fill Parent,Height设为30,AlignHorizontal设为Center。然后拖出一个Button,将Button1.Text设置为“确定”.然后点击Open the Blocks Editor。415)在Blocks Editor中点击My Bl

29、ocks,然后点击Button1,会出现与Button1相关的事件和属性。将Button1的Clock事件拖至右侧空白处。再将lblYourName的”Set lblYourName To”块拖至Button1.Click中。将tbYourName.Text拖至”Set lblYourName To”右侧。422. 用声音打招呼1)建立一个工程,取名SayHello2)设计界面如右图433)各个部件的列表和块设计443)设计一个简单的病人的病情记录程序 输入病人姓名、性别、年龄和病史,如果是女的,则再记录月经史。452.4 变量 变量是可以用来存储值的存储单元。在程序中,可以根据需要来定义新的

30、变量,每个变量都有不同的名字。2.4.1变量的定义 变量定义是在Blocks Editor定义的。以定义一个叫做Score变量为例说明定义变量的步骤: 1)在Definitions Folder中的Build-in Block,拖动Def Variable块, 462)改名:点击文本”variable”,输入”Score”。3)如果需要设置初始值为“0”,则将鼠标光标移至Score的右侧,选择Math中的“123”块并查入到该变量的定义中,并将默认值“123”改为“0”472.4.2 变量值的设置和获取 当定义好一个变量后,App Inventor就给它建立了两个块(在My Blocks的My

31、 Definitions中可以看到): “set global Score to”块: 设置变量Score的值 “global Score”块: 读取变量Score值482.4.3将变量的值设置为一个表达式1)将变量增加1 我们在编程时经常会碰到需要将变量的值增加1的时候,下图就是实现将Score的值增加1。49502)建立复杂的表达式512.4.4 例子1.摄氏度与华氏度的转换 C = (F 32) * 5 / 9 F = 9 * C / 5 + 32步骤:1)建立工程Thermo,并设计如右界面52532)Blocks Editor作如右图的设计。542)计算BMI(Body Mass I

32、ndex)值 bmi = Weight/ (Height*Height)体重的单位为kg,身高的单位为米 bmi 18.5 : 偏瘦 18.5 = bmi 24 正常 24 = bmi 27: 过重 27 = bmi 30: 轻度肥胖 30 = bmi = 35: 重度肥胖 552.5 条件程序设计2.5.1 if 和 ifelse块 App Inventor提供了两种条件判断块: if块和ifelse块,它们存在于Block Editor中Built-in页面中的Control栏中。 if块测试一个逻辑表达式,如果为真(TRUE),就执行 then-do后面的代码,否则(即值为假 False

33、)不执行。 ifelse块测试一个逻辑表达式,如果为真(TRUE),就执行then-do后面的代码,否则(即值为假FALSE)执行else-do后面的代码。56逻辑表达式是一种数学表达式,它的值只有真(TRUE)或假(FALSE)两种值。关系运算符 =、=、=、对应如下块:57例.计算实际年龄,输入出生年份和月份,计算今年的实际年龄。如果是6月份之后出生的,则实际年龄减1。1)新建工程,取名为CalcAge2)设计的界面如下:583)设计的块如右图思考题:如果编程获取今年年份?59例.输入课程成绩(100分制),如果及格,则显示黑色字体的”Pass”,如果不及格,则显示红色的”Fail”1)建

34、立工程,取名为Score2)界面设计如下:603)代码块设计如下:61作业:1.计算BMI值bmi = Weight/ (Height*Height)体重的单位为kg,身高的单位为米 bmi 18.5 : 太瘦了,多吃点。 18.5 = bmi 24 正常,恭喜,身材适中,请保持 24 = bmi 27: 过重,多运动,控制饮食 27 = bmi 30: 轻度肥胖,太重了,要加强锻炼身体 30 = bmi = 35: 重度肥胖 ,_622.基础代谢率计算公式:女性:655 + (9.6 x 体重) + (1.7 x 身高) - (4.7X年龄) 男性:66 + (13.7 x 体重) + (5

35、.0 x 身高) - (6.8x年龄)632.5.2 逻辑操作符 三个基本的逻辑操作符: AND、OR、NOT A AND B : 当逻辑表达式 A和B同时为真时,A AND B才为真,其它全为假。 A OR B: 当逻辑表达式A和B同时为假时, A OR B才为假,其它全为真。 NOT A: 求反64例:输入一个年份,判断是否闰年。 判断一个年份是否为闰年,该年可以被4整除,不能被100整除,但可以被400整除。1)建立一个工程,取名LeapYear,并界面设计如下:652)块设计如下:662.5.3 choose块672.6 循环 在程序设计中,有些代码(AppInventor 称为块)需

36、要反复执行多次,这就需要循环结构。AppInenvtor有两种循环结构: foreach: 作用是对列表的每一项进行处理。 while:对某些块反复执行直到条件表达式改变。 while是更具有普遍适用的一种循环结构。682.6.1 while while 测试条件表达式,当条件表达式计算为TRUE时,就不断执行do中的块,直到条件表达式为FALSE。循环通常包含如下四个部分: 循环控制变量: 用于控制循环次数。 初始化代码:在进入循环之前,对各个变量赋初值。 循环条件:如果条件为真,执行循环体中的代码,否则退出循环。 循环体:反复执行的代码。循环控制变量初始化代码循环条件循环体69例 计算 1

37、+2+3+n。1)新建工程,并设计如下界面:702)块设计如下:71例:输入一个数字,判断是否素数 素数(Prime Number):除1和自身不能被别的数整除。 如果一个数A能被另外一个数B整除,A/B的余数为0.1)建立工程,并设计界面如下:722)块设计如下:73接上图:74例.绘制一个月的生物节律周期图 人体生物周期又称人体生物节律,具体表现为人的智力、情绪和体力随时间呈现“高潮期临界期低潮期”的周期性变化。述本世纪初,一位德国内科医生威尔赫姆弗里斯和一位 奥地利心理学家赫尔曼斯瓦波达,通过长期的临床观察, 发现在病人的病症、情感以及行为的起伏中,存在着一个以 23天为周期的体力盛衰以

38、及以28天为周期的情绪 波动。 大约过了20年,奥地利因斯布鲁大学的阿尔弗累特泰尔其尔教,在研究了数百名高中和大学学生的考试成绩后,发现人 的智力是以33天为波动周期的。75作业:已知圆周率的计算公式: = 4 * (1 - 1/3 + 1/5 1/7 + + 1/n 1/(n+2)编程要求:输入n,计算出的值。762.6.2 foreach775.7 列表5.7.1 列表(List)的概念列表(List) : 由相同性质的数据的集合。组成列表的每个数据成为项目(Item)。如果想存放多个同学的姓名,那么可以用如下块来定义个列表来存放: 785.7.2 建立列表 可以通过def variable块和make a list块来建立一个列表。1)在Built-in Pallete中,将def variable拖至程序区2)将文本”variable”改为”NameList”3)在List Pallete,将make a list块拖至NameList的定义块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论