简单安卓浏览器开发实验报告.docx
- 文档编号:27165027
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:9
- 大小:522.42KB
简单安卓浏览器开发实验报告.docx
《简单安卓浏览器开发实验报告.docx》由会员分享,可在线阅读,更多相关《简单安卓浏览器开发实验报告.docx(9页珍藏版)》请在冰豆网上搜索。
简单安卓浏览器开发实验报告
实验报告
学年学期:
课程名称:
移动互联网
指导老师:
学院:
计算机学院
班级:
学号:
姓名:
湖南工业大学
实验报告
第16周
实验名称
移动互联网技术
实验性质
必修
实验类型
综合
实验课时
8
实验日期、时间
12月20日
实验消耗器材
台式计算机
实验仪器设备
CPUcorei5,硬盘500G,Windowxp,相关开发工具eclipse等
实验目的
通过学习基于Android的音乐播放器制作和实现基于Android的浏览器项目实际开发,学会了基于Android的移动互联网技术应用软件开发能力。
实验内容(实验原理、运用的理论知识和数据、算法、程序、步骤和方法)
一.引言
1.编写目的
从该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。
在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。
本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。
2.项目背景
Android包含操作系统、用户界面和应用程序——移动电话所使用的大部分软件,它还不存在任何以往影响移动产业创新发展的专有权障碍。
Google与手机联盟合作研发了Android,这个联盟由:
中国移动、摩托罗拉、高通、宏达电和T-Mobile等30多家技术和无线应用的领军企业构成。
Google与运营商、设备生产商、开发商有关各方结成深层次的合作伙伴关系,希望建立标准化、开放式的移动电话软件平台,在移动行业内形成一个开放式的系统。
作为谷歌企业战略的重要组成部分,Android将进一步实施“随时随地为每个人提供信息”这一企业宗旨。
不再让移动通讯依赖与设备平台。
出于这个宗旨,Android将补充,而不会代替谷歌长期以来奉行的移动发展战略:
通过与各地的手机制造商、移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。
近两年来由于Android操作系统具有良好的开放性和平台的便捷性等特点,采用Android操作系统的手机越来越受到人们的亲睐。
同时Android操作系统在智能手机领域中所扮演的角色越来越重要。
3.项目说明
设计基于android的手机浏览器客户端,通常一个浏览器包括前端界面、后端任务处理。
手机浏览器使用Eclipse环境进行设计。
实现手机微博的基本功能,如浏览网页,刷新网页,前进,后退等。
4.项目目标
该阶段目的在于明确系统的数据结构和软件结构,此外总体设计还将给出内部软件和外部系统部件之间的接口定义,各个软件模块的功能说明,数据结构的细节以及具体的装配要求。
实验内容(实验原理、运用的理论知识和数据、算法、程序、步骤和方法)
二.系统需求
1.界面需求
(1)简洁美观
(2)易于操作
(3)使用方便
2.性能需求
能够运行android2.3的手机
3.可行性需求
Android是一个包含操作系统、中介架构层及应用程序所产生出来的软件堆栈架构。
由下而上,其核心为嵌入式Linux2.6作业系统,向上搭配Google为Android开发的类库及Android运行时,再配合应用程序架构,来开发各种不同的应用程序。
4.运行环境需求
软件基本运行环境为智能手机android 操作系统
实验内容(实验原理、运用的理论知识和数据、算法、程序、步骤和方法)
三.功能需求
(1)能够联网进行数据交换
(2)能够获取网页数据并展示
(3)能够对网页进行手动的刷新
(4)能够前进到网页的下一页
(5)能够后退到上一个访问的网页
实验内容(实验原理、运用的理论知识和数据、算法、程序、步骤和方法)
四、实现程序
界面代码:
android=" xmlns: tools=" android: layout_width="match_parent" android: layout_height="match_parent" android: orientation="vertical" tools: context=".MainActivity"> android: layout_width="wrap_content" android: layout_height="25dp" android: layout_gravity="center" android: text="网络工程移动互联网技术实验"/> android: layout_width="match_parent" android: layout_height="40dp" android: orientation="horizontal" > android: id="@+id/pd" android: visibility="gone" style="? android: attr/progressBarStyleHorizontal" android: layout_width="match_parent" android: layout_height="3dp"/> android: id="@+id/webview" android: layout_width="match_parent" android: layout_height="match_parent" /> 主要代码: importandroid.app.Activity; importandroid.content.Intent; importandroid.graphics.Bitmap; importandroid.os.Bundle; importandroid.view.Menu; importandroid.view.View; publicclassMainActivityextendsActivityimplementsOnClickListener{ privateEditTextet_path; privateButtonbt_entry; privateWebViewwebview; privateButtonbt_left; privateButtonbt_right; privateButtonbt_refresh; privateProgressBarpd; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_path=(EditText)findViewById(R.id.et_path); bt_entry=(Button)findViewById(R.id.bt_entry); bt_left=(Button)findViewById(R.id.bt_left); bt_right=(Button)findViewById(R.id.bt_right); bt_refresh=(Button)findViewById(R.id.bt_refresh); pd=(ProgressBar)findViewById(R.id.pd); webview=(WebView)findViewById(R.id.webview); bt_entry.setOnClickListener(this); bt_left.setOnClickListener(this); bt_right.setOnClickListener(this); bt_refresh.setOnClickListener(this); initSettings(); } privatevoidinitSettings(){ webview.setWebViewClient(newWebViewClient(){ @Override publicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){ et_path.setText(url); returnsuper.shouldOverrideUrlLoading(view,url); } @Override publicvoidonPageStarted(WebViewview,Stringurl,Bitmapfavicon){ pd.setVisibility(View.VISIBLE); super.onPageStarted(view,url,favicon); } @Override publicvoidonPageFinished(WebViewview,Stringurl){ pd.setVisibility(View.GONE); super.onPageFinished(view,url); addImageClickListener(webview); } }); webview.setWebChromeClient(newWebChromeClient(){ @Override publicvoidonReceivedTitle(WebViewview,Stringtitle){ //TODOAuto-generatedmethodstub super.onReceivedTitle(view,title); } @Override publicvoidonProgressChanged(WebViewview,intnewProgress){ pd.setProgress(newProgress); super.onProgressChanged(view,newProgress); } }); WebSettingssettings=webview.getSettings(); settings.setJavaScriptEnabled(true); webview.addJavascriptInterface(newAndroidNative(),"imagelistener"); } privatevoidaddImageClickListener(WebViewwebView){ webView.loadUrl("javascript: (function(){" +"varobjs=document.getElementsByTagName(\"img\");" +"for(vari=0;i +"objs[i].onclick=function()"+"{" +"window.imagelistener.openImage(this.src);"+//通过js代码找到标签为img的代码块,设置点击的监听方法与本地的openImage方法进行连接 "}"+"}"+"})()"); } publicclassAndroidNative{ @JavascriptInterface publicvoidopenImage(StringimageSrc){ Toast.makeText(getApplicationContext(),imageSrc,Toast.LENGTH_SHORT).show(); Intentintent=newIntent(); intent.putExtra("path",imageSrc); intent.setClass(getApplicationContext(),ImageActivity.class); startActivity(intent); } } @Override publicbooleanonCreateOptionsMenu(Menumenu){ //Inflatethemenu;thisaddsitemstotheactionbarifitispresent. getMenuInflater().inflate(R.menu.main,menu); returntrue; } @Override publicvoidonClick(Viewv){ switch(v.getId()){ caseR.id.bt_entry: Stringurl="http: //"+et_path.getText().toString(); Toast.makeText(getApplicationContext(),url,Toast.LENGTH_SHORT).show(); webview.loadUrl(url); break; caseR.id.bt_left: Toast.makeText(getApplicationContext(),"向后",Toast.LENGTH_SHORT).show(); webview.goBack(); break; caseR.id.bt_right: Toast.makeText(getApplicationContext(),"向前",Toast.LENGTH_SHORT).show(); webview.goForward(); break; caseR.id.bt_refresh: Toast.makeText(getApplicationContext(),"刷新",Toast.LENGTH_SHORT).show(); webview.reload(); break; default: break; } } @Override publicvoidonBackPressed(){ if(webview.canGoBack()){ webview.goBack(); }else{ super.onBackPressed(); } } } 实验内容(实验原理、运用的理论知识和数据、算法、程序、步骤和方法) 五、功能展示 刷新功能 前进功能 后退功能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 浏览器 开发 实验 报告