您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Android实训实习报告总结
一、引言Android学习已有一年半有余,先后做过两款游戏、三款应用和搭建一台服务端,也了解过一些Android相关的源码(JDK、SDK和NDK),学习Android不仅是对前沿开发技术的了解,也是对编程知识的一次提升。巩固和学习了更多的Android的控件、布局、Activity、Service等一系列基础知识,对整个Android的开发有了大致的了解。android入门后,只会照着别人的葫芦来画瓢,即没有设计思想,也没有自主原创的代码,不好不好于是乎,进了公司跟着项目走,用项目来驱动自己去学习和提高公司是1+1开发模式,即1个美工+1个工程师,负责完成一个项目(主要是游戏开发),就完全需要自己设计游戏的布局、逻辑,以及各种动画,来增强用户体验的效果当时主要是看Android官方的SDKAPI文档、中文API文档、JDK源码,对有些感念不清楚,就上论坛去找答案,如CSDN、ITEye、IBM、知乎,或者去啃google官方的文档。二、新掌握的Java基础学习2.1、ActivityView、Surfaceview的理解掌握了常用控件、view、surfaceview使用方式,知道怎样去适配不同屏幕后,每天就是重复的工作,堆砌代码,难以进一步去提升自己于是就自己给自个找点事干,自定义控件,如对话框背景等,或去googlecode找些开源的代码下来研究,学习人家的设计思想、模块功能的划分、代码组织结构等知识这个过程中,涉及到的知识比较多,如版本管理工具SVN、Git、Mercurial,如设计模式的思想,如怎样构建通用的开源应用框架(考虑sdk1.5等版本),如何适用在不同屏幕分辨率的手机上等等学习中会不断遇到一个又一个新的问题,因此需要不断去查资料、再学习各种工具,逐步积累,潜移默化中自己掌握的知识和工具就多了,眼界也开阔了。2.2、android-pulltorefresh一个强大的拉动刷新开源项目,支持各种控件下拉刷新,ListView、ViewPager、WevView、ExpandableListView、GridView、ScrollView、HorizontalScrollView、Fragment上下左右拉动刷新,比下面johannilsson那个只支持ListView的强大的多。并且它实现的下拉刷新ListView在item不足一屏情况下也不会显示刷新提示,体验更好。成果:ListView能满足一个Android项目的列表:(1)下拉刷新ListView(2)下拉刷新及滑动到底部加载更多ListView(3)拖动排序的ListView,同时支持ListView滑动item删除,各个Item高度不一、单选、复选、CursorAdapter做为适配器、拖动背景变化等。2.3、MenuMenuDrawer滑出式菜单,通过拖动屏幕边缘滑出菜单,支持屏幕上下左右划出,支持当前View处于上下层,支持Windows边缘、ListView边缘、ViewPager变化划出菜单等。SlidingMenu滑出式菜单,通过拖动屏幕边缘滑出菜单,支持屏幕左右划出,支持菜单zoom、scale、slideup三种动画样式出现。ArcMenu支持类似Path的左下角动画旋转菜单及横向划出菜单、圆心弹出菜单android-satellite-menu类似Path的左下角动画旋转菜单radial-menu-widget圆形菜单,支持二级菜单2.4、异常处理登录提交时,用户名、密码不能为空,否则不与提交。数据库返回登录信息,处理登录成功与否的异常。注册提交时,检查注册用户名,密码不能为空,密码与确认密码要相同,否则不与提交注册。三、AndroidXutils框架的使用在开发中还学习了一套强大的快速开发框架,AndroidXutils框架。3.1、xUtils使用xUtils包含了很多实用的android工具。xUtils源于Afinal框架,对Afinal进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持,拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...xUitls最低兼容android2.2(apilevel8)3.2、DbUtils数据库android中的orm框架,一行代码就可以进行增删改查;支持事务,默认关闭;可通过注解自定义表名,列名,外键,唯一性约束,NOTNULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);支持绑定外键,保存实体时外键关联实体自动保存或更新;自动加载外键关联实体,支持延时加载;支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。3.3、ViewUtils视图android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定;新的事件绑定方式,使用混淆工具混淆后仍可正常工作;目前支持常用的11种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。3.4、HttpUtils网络请求支持同步,异步方式的请求;支持大文件上传,上传大文件不会oom;支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD请求;下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;返回文本内容的GET请求支持缓存,可设置默认过期时间和针对当前请求的过期时间。3.5、BitmapUtils图片异步加载加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;支持加载网络图片和本地图片;内存管理使用lru算法,更好的管理bitmap内存;可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。四:发现式学习工作情况及遇到的问题等:4.1、Bitmap的生成Bitmap实现在android.graphics包中。但是Bitmap类的构造函数是私有的,外面并不能实例化,只能是通过JNI实例化。这必然是某个辅助类提供了创建Bitmap的接口,而这个类的实现通过JNI接口来实例化Bitmap的,这个类就是BitmapFactory。4.2、必要知识认知1、在使用方法decodeFile()/decodeResource()时,都可以指定一个BitmapFacotry.Options。利用Options的下列属性,可以指定decode的选项:inPreferredConfig指定decode到内存中,手机中所采用的编码,可选值定义在Bitmap.Config中。缺省值是ARGB_8888。inJustDecodeBounds如果设置为true,并不会把图像的数据完全解码,亦即decodeXyz()返回值为null,但是Options的outAbc中解出了图像的基本信息。inSampleSize设置decode时的缩放比例。谈通过HttpGet和HttpPost向服务器提交请求,并从服务器返回结果信息。通过如下3步访问Http资源。(1)创建HttpGet或者HttpPost对象,将要请求的URL通过构造方法传入HttpGet或HttpPost对象。(2)使用DefaultHttpClient.execute方法发送HttpGet或HttpPost请求,并返回HttpResponse对象。(3)通过HttpResponse.getEntity方法返回响应信息,并进行相应的处理。如果使用HttpPost方法提交HttpPost请求,还需要使用HttpPost.setEntity方法设置请求参数。2、实习任务概述:1.面向对象编程(封装,继承,多态)。2.this关键字使用,JavaBean定义规范以及作用3.方法的重载(overLoading),构造方法的作用4.package(创建包)import(导包)的使用以及作用5.super关键字使用6.方法的重写(override)7.访问修饰符(public,protected,默认,private)的使用8.static修饰符的作用及用法9.final修饰符的作用及用法10.抽象类(abstract)的定义和特点以及使用11.接口(interface)的定义12.接口的实现(implements)13.接口和抽象类的区别14.对象包装器,装箱和拆箱的使用15.数组的使用。16.String类,StringBuffer类,StringBuilder类的使用以及三者之间的区别17.JavaSEAPI的使用。18.日期类Date,SimpleDateFormat的使用,数学类Math和Random类的使用19.异常的处理(try,catch,finally,throw,throws)20.Java中的集合类(List,Map,Set接口的使用以及Properties属性文件的操作)21.编写音乐播放器应用22.编写电话及短信应用23.编写SD卡存取应用3、实习所用软件简介:EclipseEclipse是一个开放源代码的、基于java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。JDKJDK(JavaDevelopmentKit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成。JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的JavaSDK(Softwaredevelopmentkit)。JDK包含的基本组件包括:javac–编译器,将源程序转成字节码jar–打包工具,将相关的类文件打包成一个文件javadoc–文档生成器,从源码注释中提取文档jdb–debugger,查错工具JDK中还包括完整的JRE(JavaRuntimeEnvironment,Java运行环境),也被称为privateruntime。包括了用于产品环境的各种库类,以及给开发员使用的补充库,如国际化的库、IDL库。AndroidSDK指的既是Android专属的软件开发工具包。PopupWindow是应用开发中经常用到的组建,使用它可以在当前屏幕的上层显示一个弹窗,同时也可以指定弹窗的位置以及背景色等特性,大大提高用户体验,那么这里我就以下几点介绍它的使用:1从指定的位置弹出这个窗口(淡入淡出动画)2从屏幕底部弹出这个窗口(带有透明度背景,自定义触摸其他位置自动关闭弹窗)4.3、遇到的问题及解决方案在Android编程过程中巩固熟悉了Java的编程。由于Android应用程序的开发离不开Java的支持,所以基础的Java知识是必须的。Android系统是基于Linux的手机操作系统平台,要深入系统的学习Android,不仅仅是有Java和Android应用开发,必须要具备Linux,CC++高级编程才能深入的涉及AndroidFramework和Android内核开发。成为Android开发的高素质人才。所以,在后续对Android的学习中可能会看一些较底层的书籍。android低版本工程(如1.5)放到高版本环境中(如2.2)可能会上述错误,解决方法如下:
本文标题:Android实训实习报告总结
链接地址:https://www.777doc.com/doc-5475145 .html