ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:1.04MB ,
资源ID:14559701      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14559701.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(移动开发技术本科生产实习报告.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

移动开发技术本科生产实习报告.docx

1、移动开发技术本科生产实习报告 本科生产实习报告(2016 2017学年第二学期)姓名:* 学号:* 年级: * 专业:* 系室: * 2017年7月1日 1 移动开发技术入门1.1 单元1 熟悉Java软件及基本操作1.1.1 功能介绍Java是一门面向对象编程语言,不仅吸收了C+语言的各种优点,还摒弃了C+里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。J

2、ava可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。Java的开发需要安装JDK,编程软件有Eclipse、NetBeans、IntelliJIDEA、MyEclipse、EditPlus,其中Eclipse是一个开放代码源的、基于Java的可扩展开发平台,我们在学习Java的过程中就是应用此软件。当编辑并运行一个Java程序时,需要同时涉及到Java编程语言、Java类格式文件、Java虚拟机、Java应用程序接口四个方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类

3、,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。在Java中有8种数据类型来储存数值、字符和布尔值。关于Java开发我们用的是Eclipse,相关基本操作如下:运行Eclipse软件,点击右上角的文件,进入页面点击新建,然后点击“java项目”,进入页面后,填写“英文项目名称”,然后点“下一步”,进入页面后 点击“完成”,在右侧的“资源管理包”中寻找刚才建立

4、的工程,找到“scr”,单击右键点“新建”,选择“包”,然后你可以更改包的名称,也可以不改,关键看你这个工程的大小,如果有很多个包当然建议改名咯,然后再在刚才建的包那里单击右键找“类”的图标,然后选择,进入页面填写你要建的类的名称,点击完成,最后在页面里编码,然后运行出错就调试直到成功。本次Java的实习主要是将Java应用与移动开发,关键点在于IO流和网络访问。下面对于本次对Java的学习过程做详细介绍。1.1.2 设计/学习/调试过程JavaIO流是一种计算机用语。IO流按流的方向可分为输入流和输出流;按流的数据单位不同分为字节流和字符流;按流的功能不同分为节点流和处理流。一般我们称字符流

5、、字节流、转换流和缓冲流。IO流有四大抽象类,有Reader、Writer和InputStream、OutputStream。流的本质也是对文件的处理,我们循序渐进一步一步从文件将到流去。我们可以通过流对文件进行修改复制。java 处理文件的类 File,java提供了十分详细的文件处理方法。字节流有输入流和输出流。根据文件路径获取输入输出流“InputStream in =new FileInputStream(filein);OutputStream out = new FileOutputStream(file);”每次用完后都要进行流的关闭,操作语句是“in.close();out.c

6、lose();”。字节流的完整程序如下:public class IoDemo public static void main(String args) try File filein = new File(E:/a.txt); File file = new File(E:/a_copy.txt); if(!file.exists() file.createNewFile(); InputStream in =new FileInputStream(filein); OutputStream out = new FileOutputStream(file); byte bs = new by

7、te1024; int a = 0; while(a=in.read(bs)!=-1) out.write(bs,0,a); System.out.println(复制完成); in.close(); out.close(); catch(Exception e) System.out.println(出现异常了); e.printStackTrace();字符流用到Reader和Writer进行读写文件,操作语句为“Reader in = new FileReader(file);Writer out = new FileWriter(fileout);”,完成后同样要进行关闭流。完整程序如

8、下:public class IoDemo2 public static void main(String args) try File file = new File(E:/a.txt); File fileout = new File(E:/a_copy.txt); if(!fileout.exists() file.createNewFile(); Reader in = new FileReader(file); Writer out = new FileWriter(fileout); char cs = new char1024; int a = 0; while(a=in.rea

9、d(cs)!=-1) out.write(cs,0,a); System.out.println(复制完成); in.close(); out.close(); catch(Exception e) e.printStackTrace();高级流分为转换流和缓冲流,转换流主要是进行一些字节与字符的转换传输,主要用到了FileOutputStream和OutputStremWriter。完整操作程序如下:public class IoDemo3 public static void main(String args) try File file = new File(E:/a.txt); Fil

10、eOutputStream fos =new FileOutputStream(file); OutputStreamWriter osw = new OutputStreamWriter(fos); osw.write(您好!); System.out.println(写入完成); osw.close(); catch(IOException e) /TODO自动生成catch块 e.printStackTrace(); 缓冲流主要用到BufferedInputStream、BufferedOutputStream,主要操作程序如下:public class IoDemo4 public s

11、tatic void main(String args) try /输入输出缓冲区 BufferedInputStream bin = new BufferedInputStream(new FileInputStream(new File(E:/a.txt); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(E:/a_buffered.txt); bin.read(); bos.wait(); catch (FileNotFoundException e) / TODO: ha

12、ndle exception e.printStackTrace(); HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。在 JDK 的 包中已经提供了访问 HTTP 协议的基本功能:HttpURLConnection。HttpURLConnection是Java的标准类,HttpURLConnection继承自URLConnection,可用于向指定网站发送GET请求、POST请求。openConnection()方法会创建一个URLConnection类的对象,此对象在本地机和URL指定的远程

13、节点建立一条HTTP协议的数据通道,可进行双向数据传输。类URLConnection提供了很多设置和获取连接参数的方法,最常用到的是getInputStream()和getOutputStream()方法。openConnection()方法既能读取又能发送数据。我们主要编写了get请求进行网络访问,下面是一个访问XX获取其HTML文档的主要程序:public class HttpUtil public static String get(String url) HttpURLConnection conn = null; try URL u = new URL(url); conn = (H

14、ttpURLConnection) u.openConnection(); /建立连接 conn.connect(); /获取相应状态码 int recode = conn.getResponseCode(); if (recode = 200) /连接成功 InputStream in = conn.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in,UTF-8); String str = null; StringBuffer sb = new StringBuffer(

15、); while (str = reader.readLine()!=null) sb.append(str).append(System.getProperty(line.separator); reader.close(); if (sb.toString().length() = 0) return null; return sb.toString().substring(0,sb.toString().length()System.getProperty(line.separator).length(); catch (IOException e) e.printStackTrace(

16、); finally if (conn != null) conn.disconnect(); return null; public static void main(String args) String str =HttpUtil.get( System.out.println(str); 1.1.3 结果展示和讨论(1)字节流与字符流区别:图 1 IO流分析图 字节流主要是操作byte类型数据,以byte数组为准,主要操作类就是OutputStream、InputStream。OutputStream是整个IO包中字节输出流的最大父类,此类是一个抽象类,如果想要使用此类的话,则首先必须

17、通过子类实例化对象,那么如果现在要操作的是一个文件,则可以使用:FileOutputStream类。通过向上转型之后,可以为OutputStream实例化。与OutputStream类一样,InputStream本身也是一个抽象类,必须依靠其子类,如果现在是从文件中读取,就用FileInputStream来实现。 字符流,在程序中一个字符等于两个字节,那么java提供了Reader、Writer两个专门操作字符流的类。Writer本身是一个字符流的输出类,此类本身也是一个抽象类,如果要使用此类,则肯定要使用其子类,此时如果是向文件中写入内容,所以应该使用FileWriter的子类。Reader

18、是使用字符的方式从文件中取出数据,Reader本身也是抽象类,如果现在要从文件中读取内容,则可以直接使用FileReader子类。此外,字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的。字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容(2)Java-get与post请求的区别:1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。

19、2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。4、G

20、et传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。6、Get是Form的默认方法。使用Post传输的数据,可以通过设置编码的方式正确转化中文;而Get传输的数据却没有变化。1.2 单元2 Android1.1.1 功能介绍Android是一种以Linux与JAVA为基础的开放源代码操作系统,主要使用于便携设备。中国大陆地区较多人使用“安卓”。Android操作系统最初由Andy Rubin开发,被

21、谷歌收购后则由Google公司和开放手机联盟领导及开发,主要支持手机与平板。Android 7.0Nougat(牛轧糖): 正式版本在 2016 年 8 月 22 日发布,是由 Google 开发的 Android 操作系统的第 7 个主要版本,正是我们本次学习应用的操作系统。Android Studio 是一个全新的 Android 开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试,是我们本次学习所应用的开发工具。该工具的安装较为麻烦,不过网上都有相关的教程,非常详细。本节学习的目的主

22、要是熟悉Android移动开发,为后续的开发做准备。1.1.2 设计/学习/调试过程(1)第一次打开软件时,直接创建项目,然后根据提示选择合适的配置。创建完成后连网更新SDK,下载需要的操作系统版本,SDK占用内存较大没必要全部下载。下面是成功创建项目后的界面:图 2成功创建Demo项目(2)开发项目时主要主要用到layout、mipmap、java等几个项目。另外一个重要文件就是AndroidManifest.xml,这里定义了项目的打包名称;项目的标题、主题、图标以及所有的活动项,各种访问权限的设置等等都在这里设置。图 3项目栏介绍(3)MainActivity一般为创建一个Android

23、工程时默认的主页面,主页面的内容为一个TextView控件(HelloWorld!)。在 AndroidManifest.xml 文件中的配置: 当你删除MainActivity时需要删除或修改这些配置,当然有时候也需要加入你创建的activity。1.1.3 结果展示和讨论 (1)该登陆界面主要用到了LinearLayout、Textview、EditText、Button、ListView和ImageView。图 4登录界面展示 LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,

24、某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。LinearLayout保持其所包含的widget或者是container之间的间隔以及互相对齐(相对一个控件的右对齐、中间对齐或者左对齐)。 常用属性:wrap_content包裹实际文本内容match_parent当前控件铺满父类容器fill_parent当前空间铺满父类容器,id控件id、layout_width控件宽度、layout_height空间高度text控件文本、textSize控件大小、extCo

25、lor控件颜色、background控件背景、hint输入提示文本、inputType输入文本类型、EditText 是输入文本框。 (2)上图输入预先设置好的账号和密码可进入跳转界面,我做了一个简单的设备列表界面(图5)。图 5跳转后界面 该界面还用到了自定义适配器,用于更新产信息(由于退案原因不能看到设备列表下的各个item项,及产品介绍),android中基本的适配器BaseAdapter是一个抽象类,而它非常懒,基本没有什么方法去可以直接使用的,主要有SimpleAdapter和ArrayAdapter,所以我们在实际开发中如果需要实现各种各样的适配器样式,则需要自定义适合自己的适配器

26、,也就是说需要继承BaseAdapter。 (3)layout_gravity、padding、gravity、margin的区别: gravity用于设置组件或者子控件内部的对齐方式,例如:button内部的文字对齐方式;layout_gravity用于设置组件在layout容器中的对齐方式,例如:button在整个布局总的位置;padding填充的意思,描述控件内容与控件的相对位置;margin用来描述控件间的位置关系。1.3 单元3移动应用设计1.1.1 功能介绍随着技术的不断发展,现在出现了一个新词“智能家居”。智能家居(英文:smart home, home automation)是

27、以住宅为平台,利用综合布线技术、网络通信技术、 安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。本节我们将以家具常用的节能灯为例,做一个智能灯。该智能灯可以通过移动端通过软件控制,使用户可以远程控制家里的灯的情况,可以调节亮度及其颜色,移动端界面简单大方易于操作,可以与智能灯很好的进行信息通信,能够最大程度的方便用户。该项目完成后,可以应用到其他的多项家居用品,使用户未进家门便可以控制空调,热水器,入门便可以感受到清凉,洗上热水澡,缓解一天的疲劳。1.1.2 设计/学习

28、/调试过程该项目分为软件布局设计,控制程序设计及通信控制程序。(1)软件界面设计,源程序见1.1.3图 6控制界面图 7项目列表1.1.3 结果展示和讨论打开软件后,首先进入设备列表界面(图7),然后点击界面中部的灯泡,会进入图6界面,点击开灯按钮灯泡会亮,界面中的灯泡周围会有形状射线显示(代表灯亮),下方的红、绿、蓝三个滑动条可以改变灯泡的颜色,点击关灯按钮可关灯。1.4 智能灯项目程序布局脚本device_item LinearLayoutandroid:layout_width=match_parentandroid:layout_height=match_parent android:orientation=verticalandroid:gravity=center_verticalandr

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1