智能终端应用开发技术专题培训课件_第1页
智能终端应用开发技术专题培训课件_第2页
智能终端应用开发技术专题培训课件_第3页
智能终端应用开发技术专题培训课件_第4页
智能终端应用开发技术专题培训课件_第5页
已阅读5页,还剩290页未读 继续免费阅读

下载本文档

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

文档简介

移动智能终端开发技术课程开发及建设移动智能终端及概念开发技术实例1234报告大纲嵌入式课程群建设基础课程:C/JAVA/LINUX移动智能终端开发嵌入式系统与开发嵌入式技术及高端设计竞赛&项目实训移动智能终端课程课程定位:培养学生在二年级对主流的移动终端开发达到入门级水平32学时(上课16学时,实验16学时)教学特色:围绕智能操作系统开发(Linux、ANDROID、IOS、WP8)开发环境建立、开发工具围绕着项目来讲述有实际的实验平台支撑智能终端课程–配套实验平台移动智能终端课程-配套教材及资源配套网站:智能终端课程-深化校企合作智能终端课程-深化校企合作《移动智能终端》课程教改及项目2010年课程获“教育部精品课程”2008年课程获“校级精品课程”2012年获学校教学成果二等奖2013年获学校优秀教学团队2014年获校级重点教改2项2015年获教育部-google教改1项2014年《老年智能公寓管理》(横向项目)2015年《移动互联网+智能工具及云服务器设计开发》(纵向项目)2015年《基于移动互联网的精准营销》(纵向项目)2015年《迎宾机器人及其控制系统》(横向项目)移动终端项目软件14英伦风+友情透彻风+亲情透彻IOS风时尚带感亲情主题唯美的小公主定格儿童美好瞬间中国风+爱情软件作品展示移动智能终端概念及飞速发展1234报告大纲2.1移动智能终端概念及其实例二十年个人通讯最大变化1G模拟通信3G支持高速数据传输的数字蜂窝通讯CDMA2000WCDMATDS-CDMA2G数字蜂窝通信GSM、CDMA一台智能机代替你手边所有装备……智能机=手机+电子书+上网本+++++游戏机MP4导航仪掌上电视……炒股机+++++++为何有如此大的跨越嵌入式微处理器嵌入式操作系统传感器移动/网络技术智能终端移动智能终端【百度百科】移动智能终端指拥有接入互联网能力,搭载各种操作系统,可根据用户需求定制化各种功能的设备。广义的讲包括手机、笔记本、车载电脑、可穿戴设备等特征接入互联网,具备用户交互通讯功能具备独立操作系统,搭载各功能软件搭载物理传感器,构建物理世界和虚拟世界之桥

3/24/2025“曾经的”移动智能终端Netbook具有网络功能的便携PC8、9寸屏幕UMPC超便携个人电脑——Ultramobilepersonalcomputing7英寸左右大小的显示屏,重量为900g左右支持蓝牙、Wi-Fi和以太网连接,内存512MB以上,硬盘容量为30GB到60GBMID移动互联网设备——MobileInternetDevice4英寸到6英寸的显示屏,小于300gLinux系统互联网,随时享受娱乐、进行信息查询、邮件收发3/24/2025“曾经的”移动智能终端平板电脑支持手写输入或者语音输入移动性和便携性IpadPDA个人信息助理,掌上电脑Palm&WindowsMobile电脑的外围助理功能,看书、娱乐、记事、日程等GPS及导航仪3/24/2025“曾经的”移动智能终端PMP移动媒体播放器——PortableMediaPlayerIpodTouchIVI车载娱乐系统——In-VehicleInfotainment3/24/2025“曾经的”移动智能终端其他数字便签,数字笔ConnectedTVWidget框架,低成本接入互动层,非完全的InternetTV电纸书Nike+,Speed+手表3/24/2025“曾经的”移动智能终端-IPhoneIphone42010.6.8,苹果全球开发者大会(WWDC10)iPhoneOS4—>iOS4326ppiRetinaA4,1G主频,CortexA8SGX535多任务程序分类功能,更多的企业功能iAdiOS4.0SDK,1500+新API,如开发者调动日历、照片库、短信应用、影片播放和获取、导航功能的改进和快速查看等2011.6.6,苹果全球开发者大会(WWDC11)3/24/2025“曾经的”移动智能终端--Ipad2011.3.2,Ipad2发布iPadWiFi,iPadWifi+3G1024×768像素分辨率,132每英寸(ppi)像素处理器双核A5,处理器性能提升2倍,显示芯片性能提升9倍,功耗不变双摄像头,HDMI高清输出iOS4.3,FaceTime(4人视频通话)、PhotoBooth(9个直播视频流)和iMovie3/24/2025“曾经的”移动智能终端--Gphone2008.9.23,美国运营商T-Mobile发布G1HTCDream到HTCIncredibleAndroid1.0到Android2.2主频528MHz到1GHzHTCDream(G1),HTCMagic(G2)HTCHero(G3),HTCTattoo(G4)NexusOne(G5),Legend(G6)HTCDesire(G7),HTCWildfire(G8)HTCAria(G9),HTCDesireHD(G10),HTCIncredibleS(G11)3/24/20252.2移动智能终端相关技术移动智能终端—微处理器电池供电的手持设备ARM微处理器为主8核,14/20nm工艺主频在1.8GHz电源供电的终端目前常用ATOM处理器主频可以到2GHz例子:IVI3/24/2025移动智能终端--操作系统Symbian诺基亚为主,S60是主流WindowsCE微软:“WindowsMobile将熟悉的Windows体验扩展到了移动环境中现在更名为WindowsPhone7RIM加拿大BlackBerry(黑莓),邮件是特色对输入设备都做过特别设计,使输入设备可以频繁使用iPhoneOSMacOSX的衍生,类Unix系统,Objective-CPalmOS3Com公司的产品,专用于掌上电脑,PalmOS节能、占有非常小的内存、内置数据库,封闭操作系统MeeGo英特尔和诺基亚宣布整合Moblin和MaemoAndroidMontaVista3/24/2025Symbian摩托罗拉、西门子、诺基亚→诺基亚→开源Symbian生态系统只有诺基亚,开源后,没有其他厂商加盟开源对多数Symbian开发者写代码没有实际的影响前身是Psion公司的EPOC系统实时性、多任务的纯32位操作系统抢占式的多任务调度和内存保护具有功耗低、内存占用少等特点三个系统设计原则是:用户数据的完整性和安全性至关重要不能浪费用户的时间所有的资源都是稀少的SymbianOS操作系统按内核版本分有v6.1,v7.0,v8.0,v8.1,v9.1,v9.2等按用户平台(界面)分有S60,S80,S90,UIQ,MOAP等没落不重视触摸屏产品开发困难3/24/2025WinCECE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)精简的Windows95微软从计算机到嵌入式系统1996-CE1.0,屏幕为480x240pixels、四色灰阶、2MB内存、44MHz处理器1997-CE2.x,PalmPC

Palmsize-PC,支持彩色屏幕2000-CE3.0通用版本,并不针对掌上产品,标准PC、家电和工控设备上也可以安装运行改名为PocketPC,CompaqiPAQ3630PocketPC2000,与Palm区别定位,加入多媒体2001-PocketPC2002,WinCE3.0核心,加入了手机功能的支持;同年针对小型化智能型手机发表Smartphone20022002-WindowsCE4.0.NET2005-WindowsCE5.02006-WindowsEmbeddedCE6.02010-WindowsEmbeddedCompact73/24/2025WindowsMobileMicrosoft用于PocketPC和Smartphone的软件平台,原型为WinCE一个版本到两个版本(pocketpc,Smartphone),再回到一个版本最新的版本是7发展历史2001-PocketPC2002(WindowsCE3.0)2001-Smartphone2002(WindowsCE3.0)2003-WindowsMobile2003(WindowsCE4.2)2003-WindowsMobile2003SE(WindowsCE4.21)2005-WindowsMobile5.0SE(WindowsCE5.0)2007.2-WindowsMobile6.0,CrossBow(WindowsCE5.2)2008.4-WindowsMobile6.1(WindowsCE5.2)2009.2-WindowsMobile6.5

Windowsphone2010.2-WindowsPhone7,一款基于MicrosoftX-Box游戏机内核的手机3/24/2025Windowphone7微软2010年4月底发布了WindowsPhone开发者工具CTP的最新版本整合了最新发布的VisualStudio2010正式版为WindowsPhone仿真器升级了WindowsPhone7系统镜像2010年6月6日微软已经委托游戏开发公司TouchDimensions为WindowsPhone7手机平台开发20+休闲娱乐游戏2011年4月WindowsPhone7开发者工具(包括VisualStudioExpress、ExpressionBlend4)的下载次数已经超过150万,注册开发者约为3.6万WindowsPhone7已经拥有约1.15万个应用程序硬件ARMv7-basedapplicationsprocessorHardwareaccelerationfortheDirectX®applicationprogramminginterfaceCapacitivemulti-touchscreenDigitalcameraBluetoothandWi-FiconnectivityFMradioreceiverA-GPSAccelerometer,compass,light,androximitysensors3/24/2025WindowsPhone7架构3/24/2025RIMBlackBerry的经典设计宽大的屏幕和便于输入的QWERTY键盘,为拇指输入而优化最大特点就是手机和电子邮件的融合用户在任何有手机信号的地方接收互联网电子邮件推送邮件服务(pushemail),新邮件自动由RIM的服务器传送到手机服务运营商,然后直接推送到黑莓终端上。封闭源码最新测试版本6.02010.76.13/24/2025PalmOSPalmOS是3Com公司的产品,专用于掌上电脑。主要特点:良好的节能功能。合理的内存管理,PalmOS占有非常小的内存。数据以数据库的格式存储3/24/20251996-PalmPilot10002002-handera330胖梨PalmPre奔迈TreoProIOSiPhoneOS是由苹果公司为iPhone开发的操作系统iPhone、iPodtouch以及iPad以Darwin为基础的系统架构分为四个层次内核操作系统层(theCoreOSlayer)内核服务层(theCoreServiceslayer)媒体层(theMedialayer)可轻触层(theCocoaTouchlayer)系统操作占用大概240MB的内存空间源码模式:封闭源码+开放源码组件最新测试版本4.3:2011.2.2开发工具:XcodeiPhone模拟器:AspenSimulatorSDK需要拥有英特尔处理器且运行MacOSXLeopard系统的Mac使用不支持java、flash3/24/2025MeeGo3/24/2025MeeGo系统结构3/24/2025诺基亚首款采用MeeGo的产品:N9计划上市时间为2010.12硬件4寸屏幕1280*720分辨率64G海量存储1G快闪存储器1200万像素摄像头HDMI高清输出接口主频1GH的ARMCortex-A8处理器可超频至1.3-1.4GHz软件Meego未上市3/24/2025从Moblin到MeeGo3/24/2025MeeGoreleases4个版本适用于ARM-basedNokiaN900MeeGoHandsetDay1DeveloperPreview适用于IntelAtom-basednetbooksMeeGov1.0forNetbooks(GoogleChromeBrowser)MeeGov1.0forNetbooks适用于IntelAtom-basedin-vehicleMeeGov1.0forIn-VehicleInfotainment(IVI)3/24/2025MeeGo策略–跨越多个领域3/24/2025多媒体电话手机OS&Sys.Infra.上网本OS&Sys.Infra.OS&Sys.Infra.互联网电视英特尔®

凌动™开发计划&AppUp(SM)

应用程序中心MeeGo=最优的Moblin™+最优的Maemo*基于英特尔®处理器的平台MeeGo是英特尔®

凌动™品牌软件战略的执行延续车载信息娱乐平台Meego手机MeeGo手机系统界面锁屏、主屏幕、程序目录等部分锁屏界面用户唤醒设备时的显示界面采用由下向上拖动的方式进行解锁,用户可以自定义壁纸,锁屏界面还提供有通知信息如短信、未接来电、电子邮件等等。主屏可以定制化显示的界面,支持多个主屏切换,用户可以放置自己喜欢的应用快捷方式和功能图标程序目录可以提供所有应用程序的显示对触摸操作的手势提供了多种支持包括轻触、长按、拖动、双击、双指缩放、双指长按等支持多任务切换功能可以将同时打开的多个应用呈现为缩略图模式显示,或者是3D视图切换,用户可以通过该界面切换多个任务或者进行关闭3/24/2025TIZENTizen(中文名:泰泽)是两大Linux联盟LiMoFoundation和LinuxFoundation整合资源优势,携手英特尔和三星电子,共同开发针对手机和其它设备的操作系统。该系统整合了BADA和MeeGo两个操作系统,并于2012年2月正式公布。3/24/2025TIZEN3/24/2025嵌入式Linux目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。Linux现已成为嵌入式操作的理想选择。所有基于Linux的EOS大多数具有以下特点:开放源代码,不需版权费用所需容量小(最小的安装大约需要2MB)精简内核,高性能、多任务、成熟稳定良好的应用程序支持、硬件驱动支持、文档支持嵌入式linux操作系统AndroidMeegoHpwebOS(PalmWebOS)3/24/2025WebOS网络操作系统,运行在浏览器中的虚拟操作系统更为广泛的定义是基于Web的服务的开放式集合(anopencollectionofWebservices)1998由UCBerkeley的穆罕默德.Amin.Vahdat等人提出内涵用户通过浏览器运行基于Web的在线应用能实现PC操作系统上的各种操作提供了WebOSAPI,能够根据WebOSAPI进行编程程序语言以PHP,XML,JS等Web语言为主,尽可能消灭高级语言3/24/2025WebOS的功能通过浏览器在WebOS上运行基于Web的在线应用(WebApplication)来实现PC操作系统上的各种操作(包括文档的存储,编辑,媒体播放等等)。网络资源寻址远程执行程序(在客户端执行服务器程序)资源管理认证与安全WebOS支持丰富的网络操作网页浏览RSS阅读支持WebAPI提供集中的、全面的、友好的Web资源访问能力,是一组网络功能的集合3/24/2025WebOS的设计3/24/2025开机在网互联网应用无盘工作站WebAPIWebApplicationProgramInterface类似于微软提供的WindowsAPI微软的WindowsAPI提供了本机的操作接口WebAPI提供了网络的操作接口把Web的基本操作程序封装在一起3/24/2025WebOS&传统OS具备了一些传统操作系统的特点WebOS提供了WebOSAPI,能够根据WebOSAPI进行编程能够在WebOS中打开应用程序区别使用PHP,XML,andJavaScript等Web语言实现基于网页的操作系统,打开网页就等于进入了一个操作系统3/24/2025WebOS的优点基于Web的标准化程度很高,不同的程序和服务能够方便的进行对接尚未形成标准有开源的WebOS可以参考省去下载,免受病毒木马的骚扰不用安装应用软件,免去维护,对硬件的要求低软件的扩展性好,可以无缝的升级软件功能对开发者而言更容易解决盗版问题,同样也解决了收费困难的问题终端随意选择可以在不同浏览器、不同的操作系统运行程序,甚至可以在其他的终端3/24/2025WebOS的缺点执行效率低webos中的程序运行的容器是浏览器;中间的环节是:webos运行webservice,浏览器运行webos,os运行浏览器,机器码运行os等4个环节。传统的程序运行环节仅仅是os运行software和机器码运行os两个环节。环节越多、耗损越大、效率越低带宽瓶颈开发难度大js调试困难、浏览器的兼容性webos如果要进步的话,语言需要改善网络依赖性过强不能上网?服务器瘫痪?服务器数据库崩溃?隐私性操作在网上,数据在服务器上3/24/2025典型WebOS基本处于Alpha或者beta状态有多于20个的WebOSI-CubeEyeOSDesktoptwoYouOSCraythur/G.ho.stTomOSAndroid/chrome3/24/2025YouOS聊天客户端,IM软件,文件浏览器,RSS阅读器等等使用JavaScript来与服务器交换数据,在进行下一步操作之前,上一步的操作会被记录,方便返回优秀的在线协同操作3/24/2025TomOS中文WebOS3/24/2025移动智能终端—传感器加速度传感器---手机的XYZ方向运动状态陀螺仪---角度运动速度磁力传感器---感应周围磁场距离传感器---探测和周围物体距离光线传感器---感知环境亮度气压传感器---测量海拔高度温度传感器---感知温度计步传感器---比加速度传感器计步更精准心率传感器---检测手指上血管脉动数量计算心率指纹传感器---指纹登录摄像头---身份识别3/24/2025移动智能终端开发技术课程开发及建设移动智能终端及概念开发技术实例1234报告大纲智能终端开发3.1嵌入式Linux开发1嵌入式Linux开发模式23Linux应用开发知识略讲图形开发嵌入式Linux智能终端程序主要内容4实例演示计算机体系架构软硬件之间的关系硬件软件硬件是基础软件是灵魂软硬结合最关键嵌入式系统模型典型架构输入输出嵌入式系统应用程序嵌入式操作系统……软件嵌入式微处理器外围设备……硬件嵌入式系统硬件模型典型架构CPUABusCBusDBus内存外存网卡显卡以处理器为核心依靠总线进行连接的多模块系统与PC的区别和联系硬件架构嵌入式处理器输入接口输出接口存储设备和PC机有何不同?嵌入式处理器典型结构嵌入式处理器SoPCSoCMCUDSPMPU微观CPU基于ARM9的S3C2440取址执行译码内存知识产权核(IPCORE)接口模块再看嵌入式系统硬件模型嵌入式系统软件模型典型架构非操作系统模型架构操作系统模型架构非操作系统软件模型典型架构硬件应用程序各个接口硬件的软件驱动计算机体系结构数字电路微机接口Protel微机接口技术、C/汇编语言编程算法数据结构C/C++语言/开发工具相关专业知识所需知识架构示例控制开发板上LED灯闪烁一般步骤BECDA看懂硬件图编写驱动编写应用程序系统调试使用工具看懂硬件图非操作系统LED灯闪烁编写驱动非操作系统LED灯闪烁//leddrv.cvoidledconfig(){ ……}voidledon(){ ……}voidledoff(){ ……}编写应用程序非操作系统LED灯闪烁//ledapp.cvoidmain(){ ledconfig(); for(…) { ledon();delay(); ledoff();delay(); }}开发工具多使用ADS或REALVIEW软件使用工具非操作系统LED灯闪烁ADSRealView工具元件组成ADSRealViewMDK工程管理CodeWarriorIDEμVisionIDE编译器ARMCCompilerforADSARMC/C++CompilerRVCT调试器ARMExtentionDebugger(AXD)μVisionDebugger仿真器ARMulatorμVisionCPU&PeripheralSimulation硬件调试单元Multi-ICEμLink使用硬件调试工具H-JTAG在开发板上进行调试录像准备工作配置、仿真烧写、运行系统调试非操作系统LED灯闪烁此类开发应用于单任务模式能够共享的代码较少,所使用到的软件代码均要重新开发,代码开发量较大,开发周期较长对软件升级维护人员有较高要求具有优秀的实时性能示例总结非操作系统LED灯闪烁共享代码少单任务模式人员要求高实时性优秀操作系统软件模型典型架构硬件操作系统各个接口硬件的软件驱动计算机体系结构数字电路微机接口Protel操作系统、C/C++/JAVA语言编程算法、数据结构C/C++/JAVA语言/开发工具相关专业知识操作系统所需知识架构系统调用进程管理内存管理文件系统中断系统协议栈应用1应用3应用2API示例控制开发板上LED灯闪烁(OS)一般步骤BECDA看懂硬件图编写驱动编写应用程序系统调试使用工具看懂硬件图操作系统下LED灯闪烁编写驱动操作系统下LED灯闪烁//leddrv.cvoidledconfig(){ ……}voidledon(){ ……}voidledoff(){ ……}操作系统相关的接口编写应用程序操作系统下LED灯闪烁//ledapp.c#defineLEDON1#defineLEDOFF0voidmain(){ fd=open(“/dev/led”);//打开设备

for(…) { ioctl(fd,LEDON);sleep(5); ioctl(fd,LEDOFF);sleep(5); }}开发工具多使用arm-linux-gcc软件开发套件或者像codeblocks等集成开发套件来完成使用工具操作系统下LED灯闪烁在开发板上进行调试(OS)录像定制内核配置LED驱动调试、运行系统调试操作系统下LED灯闪烁此类开发应用于多任务模式能够使用操作系统或用户库提供的代码,代码开发量较小,开发周期较短对软件升级维护人员要求较低实时性能较好示例总结操作系统下LED灯闪烁共享代码多多任务模式人员要求低实时性较好嵌入式系统的组成回顾汇总嵌入式微处理器存储单元硬件设备接口单元硬件部分驱动驱动软件部分驱动非操作系统嵌入式操作系统操作系统嵌入式应用程序两个中心一个基本点嵌入式软件发展历史早期的单片机由专用的监控程序控制,不含操作系统当前许多简单的单片机应用仍然使用监控程序作为控制软件现在高端嵌入式系统软件都在操作系统的支持下运行一种操作系统适合于一定的应用范围,如VRTX、pSOS、VxWorks、WindowsCE、Linux、Palm、QNX、uC/OS-II等不同的嵌入式操作系统,具有完全不同的嵌入式应用软件嵌入式系统软件结构基于OSBootloader板级支持包设备驱动嵌入式操作系统嵌入式应用程序文件系统GUI任务管理应用层硬件抽象层OS层系统服务层硬件硬件层硬件抽象层HardwareAbstractionLayer,HAL介于硬件和OS之间的一层软件抽象,也可以说是OS的一部分,一般包括:启动引导程序(BootLoader)在OS内核运行之前运行的一段程序,类似PC的BIOS完成硬件设备的初始化,建立内存空间的映射,加载OS板级支持包(BoardSupportPackage,BSP)为OS实现对硬件操作的抽象,使OS代码与硬件无关尽管功能差不多,但不同OS对BSP有不同的定义PC机采用统一的X86架构,因此几乎不涉及BSP问题设备驱动(DeviceDriver)屏蔽各种硬件部件和外设的细节差异,为操作硬件提供统一的软件接口操作系统层OperatingSystem,OS统一管理硬件资源的软件系统将硬件的诸多功能进行抽象,以服务的形式提供给应用程序,最常见的服务:调度、文件、同步、网络等在嵌入式系统中,OS有其自身的特点:稳定性、可定制、模块化、实时性都是嵌入式OS所特有的功能要求1嵌入式Linux开发模式23Linux应用开发知识略讲图形开发嵌入式Linux智能终端程序主要内容4实例演示Linux系统环境搭建虚拟机+图形LinuxLinux系统使用以windows思维习惯学习使用Linux设置找“控制面板”应用程序找“开始”文件操纵善于使用鼠标右键和双击鼠标左键等动作牢记”ls/cd/ifconfig/cp/man/help/cat/…“等几个常用的命令熟练掌握vim/gedit/office/gftp/firefox等关键应用程序使用管理进程使用”任务管理器“Linux编程及调试图形化编程调试--以”VC“的思想和使用方式来编程和调试命令行编程熟悉命令及shell编程掌握编程工具vi/gcc/as/ld/objdump/elf/make/makefile/gdb…熟练掌握编程-调试流程熟练掌握调试技巧熟练掌握Linux提供的库函数及系统调用函数1嵌入式Linux开发模式23Linux应用开发知识略讲图形开发嵌入式Linux智能终端程序主要内容4实例演示宿主机-目标板开发模式Ubuntu系统arm-linux-gcc开发套件嵌入式Linuxbootloader内核文件系统常见bootloaderbootloader嵌入式中使用最多的是ubootviviubootredbootlilogrubetherboot内核解释器源码KconfigMakefilearch/arm/Kconfigfs/Kconfig……net/Kconfig配置工具.config配置文件MakefilezImagemakezImage内核裁剪思路不可裁剪部分源码可裁剪部分源码KCONFIG文件KCONFIG文件脚本解释器最终待编译源码文件.config文件不可裁剪部分源码最终待编译源码文件.config文件Make工具Makefile文件zImage此处的文件系统是应用程序等数据文件的集合体。文件系统下载busybox源码解压缩裁剪编译并安装基于busybox构建文件系统制作文件系统压缩包烧写文件系统到开发板文件系统产生步骤添加用户特定数据文件到新产生的文件系统目录下根据内核需要制作文件系统压缩文件利用uboot等bootloader工具将生成的文件系统压缩文件烧写到开发板嵌入式图形开发工具简介KDevelop

是一个自由的,开源的IDE(整合开发环境),运行于MSWindows,MacOSX,Linux,SolarisandFreeBSD平台.她是一个全功能,可用插件扩展的IDE环境,可用于C/C++和其他编程语言的开发.Code::Blocks是一个开放源码的全功能的跨平台C/C++集成开发环境.Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了蓍名的图形界面库wxWidgets(2.6.2unicode)版

codeblocks安装方式一下载安装文件下载地址/downloads/5安装双击就可以进行安装创建应用程序工程打开Codeblocks

新建一个工程:File--New--Project选择控制台应用选择语言类型,这里选择C给工程取名,和设置工程路径设置使用的编译器先设置交叉编译器,选择project--buildoptions选择ARM交叉编译器编译器和调试器设置设置编译器设置编译器编译和调试调试器设置设置IP地址和端口号在开发板上启动gdbserver

./gdbserver31:1234hello31为主机IP地址1234为随意选择的端口号hello为可执行文件名主机上可以进行远程调试智能终端3.2ANDROID开发技术3.2.1ANDROID系统框架ANDROID框架Android系统框架Applications(应用程序层)ApplicationFramework(应用程序框架层)Libraries、AndroidRuntime(系统运行库层)Linuxkernel(Linux内核层)应用程序层Application层是Android提供的核心应用程序包。应用层序都是有JAVA语言编写,通过调用应用程序框架层(ApplicationFramework)所提供的API来完成。也可以通过jni的方式开发原生的应用程序。(需要C/C++)应用程序框架层应用程序框架层为开发人员提供了可以访问核心应用所使用的API框架。也就是说我们开发应用程序时所调用的那些API都是应用程序框架层给提供的。我们不用知道每个API是怎么实现的,知道他是用来做什么的就行。当然,如果你想弄清楚他的实现机制和原理,你可以看这个API的源码。我们看下框架层给我们提供了那些组建给我们调用:

ActivityManager:管理应用程序生命周期并提供常用的导航功能。比如:开启应 用程序需要的资源和退出应用程序时要释放资源。

WindowManager:管理所有开启的窗口程序。

ContentProvider:是应用程序可以访问另一个应用程序的数据(如联系人的数据 库),也有数据共享的意思。

PackageManager:管理所有安装在Android系统中的应用程序。比如:信息查看 和卸载应用程序等。还有ViewSystem、NotificationManager、ResourceManager、HardwareServices等等就不全部讲了。系统运行库层系统运行库层包括程序库和Android运行库两个部分,下面来分别介绍。程序库:

Android包含一些C/C++库,这些库被Android系统中的不同组件所使用,然后通过应用程序框架层为开发者提供服务。下面我们通过一个调用sqlite的例子来看这个流程。程序库(SQLite)App(对联系人进行增删改查)调用frameworkContentprovider的APIFramework(ContentProvider)通过JNI

Application层ApplicationFramework层Librarie层Android运行库层由框架图可以看到。Android运行库层又分为核心库和Dalvik虚拟机两个部分。核心库:核心库提供了Java语言核心库的大多数功能,主要通过JNI的方式向应用程序框架层提供调用底层程序库的接口。Dalvik虚拟机:Dalvik虚拟机是为了能够同时高效的运行多个VMs而实现的。(每个安卓应用程序都在它自己单独的进程中运行。都拥有单独的Dalvik虚拟机。)Dalvik虚拟机依赖Linux的一些功能,比如线程机制和底层的内存管理机制。Linux内核层Android依赖于Linux2.6版内核提供的核心系统服务。例如安全、内存管理、进程管理、网络栈、驱动模块等。内核作为一个抽象层,存在于软件栈层和硬件层之间。Android对Linux内核进行了增强,主要在以下方面:

硬件时钟(Alarm) 内存分配与共享(Ashmem) 低内存管理(LowMemoryKiller)

Kernel调试(KernelDebugger) 日志设备(Logger)

AndroidIPC机制(Binder) 电源管理(PowerManagement)Android内核机制为什么Android使用Linux操作系统做内核?因为这些:

1.强大的内存管理和进程管理

2.基于权限的安全模式

3.支持共享库

4.经过认证的驱动模型

5.Linux本身就是开源项目Android专有驱动1.AndroidBinder

基于OpenBinder框架的驱动,用于android平台进程间通信。2.Android电源管理(PM)

一个基于标准Linux电源管理系统的轻量级Android电源管理系统针对嵌入式设备进行了很多优化。3.低内存管理器(LowMemoryKiller)比Linux标准OOM更加灵活的内存管理机制,根据需要杀死进程来释放需要的内存。3.3.2ANDROID应用开发实例Android应用程序开发主讲内容Android

应用开发环境搭建Android应用程序框架介绍Android应用开发及调试Android应用开发环境搭建一相关下载(1)javaJDK下载:/javase/downloads/index.jsp

(2)eclipse下载/downloads/

(3)下载AndroidSDK

二软件安装

(1)安装jdk6u22

安装完成即可,无需配

置环境变量

(2)解压eclipse

eclipse无需安装,解压

后,直接打开就行

(3)解压androidsdk

这个也无需安装,解压后供后面使用

(4)最终有三个文件夹,如下图:

三Eclipse配置1安装android开发插件

(1)打开Eclipse,在菜单栏上选择help->InstallNewSoftWare出现如下界面:如下图:

点击Add按钮,出现如下界面输入网址:/android/eclipse/(如果出错,请将https改成http)

名称:Android(这里可以自定义)点击OK,将出现如下界面点击Next按钮,出现如下界面:点击Next按钮,选择Iacceptthetermsofthelicenseagreements

点击Next,进入安装插件界面安装完成后,出现如下界面点击Next按钮,出现如下界面:点击Next按钮,出现如下界面:点击Yes按钮,重启Eclipse二:配置androidsdk(1)点击菜单window->preferences,进入如下界面

选择你的androidSDK录,选错了就会报错,这个是升级工具,目前还没有一个版本(2)升级SDK版本,选择菜单window->Androidsdkandavdmanager出现如下界面选择updateall按钮,点击accept表示安装,点击reject表示不安装安装完成。点击Yes按钮,重启Eclipse3新建AVD(androidvituraldevice)

和上面一样,进入androidsdkandavdmanager,选中VituralDevices在点击New按钮点击New按钮后,进入如下界面:名称可以随便取target选择你需要的SDK版本SD卡大小自定义点击CreateAVD三:新建Android项目(1)选择菜单file->new->other进入如下界面:选择新建AndroidProject项目,点击Next按钮,进入如下界面名称自定义选择使用的SDK版本名称自定义Activity的名字包名必须包含一个点以上点击Next,创建完成出现如下界面所有包及源文件(。Java)所有的资源(如程序图标drawable,布局文件,常量等包含了文件中所有使用的Activity、service、receiver项目目录结构HelloAndroid.javaJava程序packagecom.android.helloAndroid;importandroid.app.Activity;importandroid.os.Bundle;publicclassHelloAndroidextendsActivity{

/**Calledwhentheactivityisfirstcreated.*/

@Override

publicvoidonCreate(BundlesavedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}}R.Java

(只读不能更改,定义该项目所有资源的索引文件)Java程序/*AUTO-GENERATEDFILE.DONOTMODIFY.*/packagecom.android.helloAndroid;publicfinalclassR{publicstaticfinalclassattr{}publicstaticfinalclassdrawable{publicstaticfinalinticon=0x7f020000;}publicstaticfinalclasslayout{publicstaticfinalintmain=0x7f030000;}publicstaticfinalclassstring{publicstaticfinalintapp_name=0x7f040001;publicstaticfinalinthello=0x7f040000;}}Xml文件main.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello"/></LinearLayout>显示图像增加

ImageViewXml文件strings.xml<?xmlversion="1.0"encoding="utf-8"?><resources><sstrings.xmltringname="hello">HelloAndroid,2010.</string><stringname="app_name">HelloAndroid</string></resources>将要显示内容:HelloAndroid,2010.RUNRUN模拟运行显示内容:HelloAndroid,2010.APPINVENTOR开发及简介MITAppInventor的起源MITAppInventor简介GoogleAppInventor:曾是谷歌实验室的一个子计划,于2010年7月推出,是一款所见即所得的Android应用创建器;特点:它允许没有编程知识的用户以拖拽特定的应用程序行为模块来创建Android应用;发展:2011年8月,谷歌公开该项目的源代码,2012年1月将其移交给麻省理工学院,2012年3月向互联网用户开放使用,并更名为MITAppInventor。1.2

MITAppInventor的起源AppInventor研发前期准备AppInventorBlocksEditor采用OpenBlocksJavaLibrary来创建可视化的模块编辑语言,简化编程过程。StarLogoTNG(TheNextGeneration)和Scratch是在Google线上开发环境中进行的,这两个项目为OpenBlocks可视化项目的开发做了充分的前期准备。1.2MITAppInventor的起源StarLogoTNG1.2MITAppInventor的起源Scratch1.2MITAppInventor的起源来自StarLogoTNG与Scratch的影响

1.2MITAppInventor的起源App

Inventor与Scratch、StarLogoTNG的差别

1.3AppInventor优势与不足Android应用的代码开发方式目前比较流行的Android开发方式是使用Eclipse编写java代码,使用代码进行程序开发是目前较为成熟且普遍的方法。

1.3AppInventor优势与不足代码开发方式与AppInventor对比

1.3AppInventor优势与不足AppInventor的优势与不足操作简单

1.3AppInventor优势与不足可视化和模块化1.3AppInventor优势与不足事件模块化

1.3AppInventor优势与不足正确性高便于调试

1.3AppInventor优势与不足AppInventor的不足1.4AppInventor作品展示AppInventor开发成果1.4AppInventor作品展示1.4AppInventor作品展示1.5AppInventor学习资源MITAppInventor()

1.5AppInventor学习资源AppInventor中文学习网(http://www.appinventor.tw/home)1.5AppInventor学习资源AppInventorBlocks(/home)1.5AppInventor学习资源高师大附中资讯社AppInventor教学网(/a/.tw/appinventor/)1.5AppInventor学习资源Stevozip(/site/stevozip)1.5AppInventor学习资源其余英文学习网站本章将详细的介绍如何开发第一个AppInventor程序——HelloAppInventor。在第二章的基础上,讲解如何使用AppInventor建立新工程、使用界面设计器开发用户界面、使用模块编辑器开发程序逻辑,以及使用手机或模拟器进行程序调试。

AppInventor程序开发流程前言3.1创建新工程HelloAppInventor示例非常的简单,界面如下图所示,用户在界面上点击“请按我”按钮,则会在按钮下方出现“Hello!AppInventor”。3.1创建新工程进入AppInventor后,在“MyProjects”页面中点击“New”按钮,新建一个AppInventor工程。在弹出的对话框“NewAppInventorforAndroidProject”中,“ProjectName”后面的输入框中填入新建AppInventor工程的名称,这里填入HelloAppInventor作为工程名称,然后点击“OK”按钮完成工程创建,如右图所示。3.1创建新工程

工程创建完成后,“Projects”中会显示刚刚创建的工程,如下图所示。工程名称“HelloAppInventor”前面有一个复选框,作用是进行批量删除操作,如果选择这个复选框,“Delete”按钮就会变为可点击的状态。3.2界面设计

点击新创建的工程名称“HelloAppInventor”,AppInventor会打开界面设计器页面,如左图所示。这样,用户就可以开始进行HelloAppInventor的界面设计。3.2界面设计AppInventor会自动创建一个屏幕页Screen1,可以在模块区中看到屏幕页Screen1。屏幕页是界面控件的承载体,供用户在其上面摆放各种界面控件。在属性设置区(Properties)中,将Screen1屏幕页的标题(Title)属性从“Screen1”更改为“HelloAppInventor”,设计区(Viewer)中HelloAppInventor示例的标题也会立即更改为“HelloAppInventor”,如右图所示。3.2界面设计选取界面控件——按钮3.2界面设计控件重命名选择按钮控件后,模块区也会出现刚刚放置的按钮控件,如右图所示,缺省的名称为“Button1”。为了在后面的逻辑设计中,可以方便的知道这些控件在界面上是做什么用的,可以将控件重命名,例如“Button1”按钮,就可以重新命名为“ButtonClickMe”或是“button_click_me”等。3.2界面设计设置控件属性值属性缺省值修改值BackgroundColorDefaultGreenFontSize14.030TextTextforButton1请按我WidthAutomaticFillparent

下面修改属性设定区中Button1按钮的属性,所有的修改内容如上表所示。修改Button1按钮的属性的目的是让按钮看起来更加醒目,且可以显示中文提示“请按我”,使用者就可以轻易的判读出这个控件是一个按钮。3.2界面设计将按钮的背景颜色修改为绿色,修改方法是将BackgroundColor属性由默认的“Default”改为“Green”,如右图所示。设置控件属性值Width属性是控制按钮宽度的属性,缺省值是“Automatic”,另一种设置方法是“Fillparent”,这样的设置方法,按钮的宽度会填充满整个父控件,如下图所示。3.2界面设计修改Button1按钮的字体大小是通过修改FontSize属性实现的,FontSize属性的缺省值是“14.0”,将其修改为“30”即可。Text属性是控制按钮的显示内容,将其从缺省的“TextforButton1”改为“请按我”。如下图所示。设置控件属性值3.2界面设计设置控件属性值Button1控件的属性设置完成后,设计区中生成的HelloAppInventor界面如左图所示。因为按钮宽度属性设置为“Fillparent”,按钮的宽度达到了最大值。3.2界面设计选取界面控件——标签接下来选取第二个控件,从控件库的Basic组件区中,将一个标签(Label)控件拖拽到屏幕页中,此时显示的文字为“TextforLabel1”,如右图所示。3.2界面设计控件属性缺省值

因为这是界面中第一个标签,因此标签的名称为Label1。Label1标签的缺省属性如右图所示。3.2界面设计设置控件属性值

下面修改Label1标签的字号、显示文字和宽度,按照上表修改Label1标签的属性。属性缺省值修改值FontSize14.030TextTextforLabel1

WidthAutomaticFillparent3.2界面设计设置控件属性值在Label1标签属性修改完毕后,Label1标签因为Text属性为空,因此在界面上Label1标签已经不可见,但它还是确实存在的,如右图所示。

到这里,HelloAppInventor示例的界面设计部分已经完成了,记得点击“Save”按钮保存界面设计。最后,点击“OpentheBlocksEditor”按钮,打开模块编辑器,准备进行程序逻辑的设计。3.3逻辑模块开发模块编辑器(BlocksEditor)新工程打开的模块编辑器(BlocksEditor)如下图所示。模块编辑器的左上方有工程名称和屏幕页名称“HelloAppInventor-Screen1”。3.3逻辑模块开发HelloAppInventor示例示例要实现的逻辑是:在“请按我”按钮被点击后,标签显示文字“Hello!AppInventor”。

上面的这段逻辑描述中,可以找到三个关键的元素:“请按我”按钮、标签和文字“Hello!AppInventor”,两个关键动作:“点击”和“显示”。如上图所示,在模块编辑器中找到三个相关模块:按钮的点击、显示标签内容和内容模块。3.3逻辑模块开发下面来说明如何在模块编辑器中的模块编辑库中,找到程序逻辑设计所需要的模块。在模块编辑库中包含“Build-In”、“MyBlocks”和“Advanced”三个子项,如下图所示。3.3逻辑模块开发

“MyBlocks”是用户界面中控件的事件模块和方法模块,这里的模块类型和数量会根据用户界面中所包含的控件数量变化。如下图所示。3.3逻辑模块开发

“Advanced”是高级模块,基本上是对所有同类型控件的操控,例如全部按钮、全部标签或是全部屏幕页。如下图所示。3.3逻辑模块开发

内建模块,经常使用到的模块被保存在这里,包括字符串模块、列表模块、逻辑模块、控制模块和颜色模块,以及用来建立可复用程序的函数模块。3.3逻辑模块开发下面依次找出前面所述的三个模块:

第一个模块可以按照如下方式找到:MyBlocks→Button1→Button1.Click,如下图所示。

准确的讲,Button1.Click模块是按钮的点击事件,这个模块会在按钮被点击的时候调用。除了按钮的点击事件以外,在图中还可以找到按钮的获取焦点事件、长时间点击事件和失去焦点事件。3.3逻辑模块开发下面依次找出前面所述的三个模块:

第二个模块可以按照如下方式找到:MyBlocks→Label1→Label1.Text,如下图所示,获取方法与获取Button1.Click模块的方法相似。Label1.Text模块是一个方法,表示将Label1的显示内容进行更改。3.3逻辑模块开发下面依次找出前面所述的三个模块:

第三个模块是text模块,用来表示需要显示的字符串,获取该模块的方法如下:Built-in→Text→text,如下图所示。3.3逻辑模块开发

text模块的缺省显示内容为“text”,将其内容修改为“Hello!AppInventor”,如下图所示。

获取所有需要的模块后,将这些模块按照逻辑关系组装在一起,其过程就像拼图游戏,拼装过程如下图所示。3.4

程序调试AppInventor支持模拟器调试和手机设备调试这两种方法

3.4

程序调试下面使用USB连接手机设备,对程序HelloAppInventor进行调试。

使用USB数据线将手机连接到所使用的计算机上后,点击模块编辑器右上方的“ConnecttoDevice”按钮,在下拉菜单中选择手机的串号,本示例中手机设备的串号显示为“?”,如下图所示。3.4

程序调试下面使用USB连接手机设备,对程序HelloAppInventor进行调试。

AppInventor通过USB与手机设备连接过程中,当“ConnecttoDevice”按钮右侧的电话图标由闪动的黄色变为静态的绿色时,表示程序与手机设备完成连接,此时手机设备屏幕显示手机“正在等待AppInventor命令,应用程序即将显示”,如左图所示。3.4

程序调试下面是程序HelloAppInventor运行过程界面

程序连接完成后,手机屏幕显示HelloAppInventor示例的初始界面。3.4

程序调试下面是程序HelloAppInventor运行过程界面

点击“请按我”按钮后,将在按钮下方显示“Hello!AppInventor”字样。3.3IOS开发技术及实例3.3.1IPHONE概述史蒂夫·乔布斯史蒂夫·乔布斯(StevePaulJobs)生于1955年2月24日1972高中毕业,只念了一学期大学1976年,21岁的乔布斯和26岁的沃兹尼艾克在乔布斯家的车库里成立了苹果电脑公司1985年获得国家级技术勋章1985年9月17日辞去苹果公司董事长1985年创办“Next”电脑公司1986年,乔布斯收购Pixar1996年,苹果公司重新雇用乔布斯作为兼职顾问1997年9月,乔布斯重返苹果公司任首席执行1997年成为《时代周刊》的封面人物1998年,推出iMac2009年被财富杂志评选为这十年美国最佳CEO,同年当选时代周刊年度风云人物之一3/24/2025用户界面iPhoneOS的用户界面的概念基础是能够使用多点触控直接操作。控制方法包括:滑动,轻触开关及按键。与系统互动包括:滑动(swiping),轻按(tapping),挤压(pinching)及旋转(reversepinching)。通过其内置的重力加速器,可以令其旋转装置改变其y轴以令屏幕改变方向。屏幕的下方有一个home按键,底部则是dock,有四个用户最经常使用的程序的图标被固定在dock上3/24/2025用户界面屏幕上方有一个状态栏能显示一些有关数据,如时间﹑电池电量和信号强度等。其余的屏幕用于显示当前的应用程序。启动iPhone应用程序的唯一方法就是在当前屏幕上点击该程序的图标,退出程序则是按下屏幕下方的home键。在第三方软件退出后,它直接就被关闭了,当第三方软件收到了新的信息时,苹果公司的服务器将把这些通知推送至iPhone或iPodTouch上(不管它是否正在运行中)。在iPhone上,许多应用程序之间都是有联系的,这样,不同的应用程序能够分享同一个信息。如当你收到了包括一个电话号码的短信息时,你可以选择是将这个电话号码存为联络人或是直接选择这个号码打一通电话。3/24/2025支持的软件iPhone和iPodTouch使用基于ARM架构的中央处理器,而不是苹果的Mactonish计算机使用的x86处理器,使用由PowerVR视屏卡渲染的OpenGLES1.1.。MacOSX上的应用程序不能直接复制到iPhoneOS上运行,需要针对iPhoneOS的ARM重新编写从iPhoneOS2.0开始,通过审核的第三方应用程序已经能够通过苹果的AppStore进行发布和下载了。3/24/2025IOS自带应用程序iPhone的主界面包括以下自带的应用程序:SMS(简讯)、日历、照片、相机、YouTube、股市、地图(AGPS辅助的Google地图)、天气、时间、备忘录、系统设定、iTunes(将会被链接到iTunesMusicStore和iTunes广播目录)、AppStore以及联络资讯。还有四个位于最下方的常用应用程式包括有:电话、Mail、Safari和iPod。除了电话、短信和相机,iPodTouch保留了大部分iPhone自带的应用程序。iPhone上的"iPod"程序在iPodTouch上被分成了两个:音乐和视讯。位于主界面最下方dock上的应用程序也根据iPodTouch的主要功能而改成了:音乐、视讯、照片和iTunes3/24/2025第三方应用软件iPho

温馨提示

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

评论

0/150

提交评论