新浪微博安卓客户端课程设计报告
新浪微博Android开发V
IWeiboActivity
MainService
完成程序调度
接收UI层数据(任务),完成业务逻辑,返回信息,更 新UI
在后台运行(继承自Service类) 线程(实现Runnable接口)
不断侦听UI传过来任务消息
MainService启动
UI发出任务 newTask(Task t)
refresh()回调刷新Login UI,登录成功or失败
登录成功进入Main窗体
MainService处理登录任务
run方法,侦听任务 doTask(t) 处理任务
Message mess = handler.obtainMessage(); mess.what = task.getTaskId(); swtich(task.getTaskId()){.....}//根据不同的任务,调用微博接
实训项目
新浪微博 Android开发
新浪微博功能
新浪微博功能
分层实现
UI层
微博中的各个窗体
logic层
程序的核心控制调度模块,获取UI传递的数据、要 执行的任务,调用微博接口,获得网络数据,返回 消息,刷新(切换)UI
微博接口层(新浪API已封装) 网络访问层(新浪API已封装)
View view = LayoutInflater.from(conts).inflate( yout.list_moreitems, null);
TextView tv =(TextView)view.findViewById(R.id.textView); tv.setText("刷新");
• 可切换的5个Activity • 所在Activity高亮显示
新浪微博安卓客户端课程设计报告
移动互联网开发课程设计报告学生:谌敦斌学号:031241318 专业:数字媒体技术班级:0312413 设计题目:安卓新浪微博客户端设计学年学期:2014 年秋季学期指导教师:华目录(示例)一、设计题目 (1)二、设计目的 (1)三、设计原理及方案 (1)1使用的软件工具和环境 (1)2需求分析与概要设计 (1)3数据库设计(若有) (1)4详细设计和关键问题 (1)四、实现效果 (1)五、设计体会 (1)参考文献 (3)一、设计题目简易新浪微博客户端系统二、设计目的通过设计开发新浪微博客户端综合训练安卓系统开发能力,进一步提升对安卓程序开发及运行的理解和认识,学会团队协作,开发出界面与功能都有特色的安卓应用软件。
掌握并熟悉OAuth认证协议的工作原理,学会通过http的get或者post 方式传参数获取相应的服务器应答信息,能够利用新浪微博官方提供的一系列接口完成简易微博客户端的开发。
三、设计原理及方案1使用的软件工具和环境Eclipse jdk7.0 Android SDK以及新浪官方提供的WeiboSDK、WeiboSDKDemo和相应API2需求分析与概要设计众所周知,官方新浪微博客户端的功能非常完善,我们这次课程设计主要是模仿官版的微博。
具体的功能需求如下:1.我们的安卓客户端是在线运行的,也就是必须在有网络连接的情况下才能工作,如果没有联网将提醒用户打开网络连接。
2.为了安全起见,安卓客户端不建议直接使用用户名和密码进行登录,而是通过比较流行的OAuth认证授权后才能登录使用,所以授权功能是必须的。
并且在测试阶段,授权的用户必须经过开发者将其微博昵称添加到测试信息才能正常登录。
3.对于第一次授权成功的用户,我们需要把它的部分身份信息例如ID 、昵称、头像url 和token 验证等保存到数据库,方便下一次直接登录。
因此要设计一个简易的数据库功能。
4.对于已经授权的用户,如果第二次登录,就不需要授权,而是直接进入登陆界面。
基于Android系统的新浪微博客户端的设计与实现
基于Android系统的新浪微博客户端的设计与实现作者:王明超来源:《电脑知识与技术》2012年第33期摘要:该系统基于Android移动开发平台,使用Java语言开发,使系统具有良好的平台移植性和可扩展性。
新浪微博Android SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方微博客户端无需了解复杂的验证和API调用过程,就可以实现分享文字或者多媒体信息到新浪微博。
本系统包括四个模块:应用程序登录模块,主界面显示模块,微博浏览模块,用户模块。
在登录模块,用户可以使用授权配置和用户注册并且登录系统。
关键词:新浪微博开放平台;授权配置;微博API调用服务中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2012)33-7933-03每一个时代都会催生新的理念,每一个理念又会引领新的潮流,每一个潮流又注定会冲破原有的桎梏,创新是时代的特征,更是IT业的标志。
摩尔定律的持续实现使整个IT业的发展和更新令人手忙脚乱,而作为终端设备中数量级最大的手机,近年更是近乎脱胎换骨,在颠覆传统手机概念的同时,不断挖掘着自身的市场价值,也成为众多厂商利益角逐的角斗场[1]。
IOS在乔布斯的精心策划下一路高歌猛进,Android则凭着开源的方式开山劈路,Symbian和Black berry的旧有模式被不断蚕食,Windows Phone则在滞后的泥潭中继续挣扎。
手机终端多样化应用的不断出现,使其在近乎实现PC端功能的同时,也影响着PC的发展。
互联网领域,以Facebook为代表的SNS的突起更是激起新一轮的网络风波,而在国内,冲破众堵的新浪在其准确的定位和成功的推广策略下推出的新浪微博更是占据了先导地位,并逐渐进入大众生活,成为许多人的生活必需品。
近年来,新浪微博的邀请重点由明星、名人转向媒体工作者甚至政府工作者,为时事的发布和民政工作提供了更为多样、便捷的方式[2]。
于是,新浪微博手机客户端便应运而生,而作为市场占有率第一的Android平台下的新浪微博客户端更是拥有广泛的需求。
基于Android手机微博客户端的设计
基于Android手机微博客户端的设计作者:朱建明来源:《电脑知识与技术》2017年第36期摘要:设计基于android的手机微博客户端,通常一个博客系统包括Web服务器、Web端系统和手机客户端系统。
手机微博客户端使用Eclipse环境进行设计,使用MySQL数据库,服务器使用Tomcat7.0。
实现手机微博的基本功能,如注册新用户,发表微博,关注好友,收藏微博,查找用户等。
关键词:Android;模块;数据库;微博中图分类号:TP311.1 文献标识码:A 文章编号:1009-3044(2017)36-0067-031 背景1.1 Android简介Android是一个包含操作系统、中介架构层及应用程序所产生出来的软件堆栈架构。
由下而上,其核心为嵌入式Linux2.6作业系统,向上搭配Google为Android开发的类库及Android 运行时,再配合应用程序架构,来开发各种不同的应用程序。
目前,Android手机占全球手机市场份额的90%左右。
1.2 手机微博介绍手机微博是智能手机继即时通信之外是又一个吸引人的应用。
手机随时随地的拍摄功能和随时随地的联网功能,是用手机的微博较之计算机更有优势。
运行在手机上的微博是客户端的应用程序,中国几个著名的互联网综合服务提供商如腾讯、新浪、网易等公司都向用户提供这一应用的下载。
移动互联网技术发展迅猛,风靡全球的博客也从计算机移动便携设备发展,趋于微型化和简易化。
1.3 设计目标实现手机微博的基本功能,如注册新用户,发表微博,关注好友,收藏微博,查找用户等。
在手机微博客户端程序开发完成后,经过打包签名,可运行在Andriod2.1及其以上版本。
1.4 开发环境和目标平台1)开发环境² Java开发工具,JDK1.7。
² Web应用服务器,Tomcat7.0。
²数据库,服务器端数据库MySQL Sever5.1和客户端数据库MySQL WorkBench6.0。
新浪微博系统设计与开发名师教案与资料
目录第一章系统概述 (1)1.1 实训开发的背景、内容以及目的 (1)1.1.1 实训开发背景 (1)1.1.2 实训开发内容 (1)1.1.3 实训开发目的 (1)1.2 项目开发环境 (2)1.3 软件开发工具的介绍 (2)1.3.1 MY ECLIPSE (2)1.3.2 HTML (3)1.3.3 MY SQL (3)第二章需求分析 (4)2.1 系统分析的任务与步骤 (4)2.1.2 系统分析的任务 (4)2.1.2 系统分析的步骤 (4)2.2 微博网站功能分析 (4)2.3 功能需求分析 (5)2.3.1 基本功能要求 (5)2.3.2 用户分析 (5)2.3.3 系统用例图 (6)2.3.4 系统的数据流图 (8)第三章总体设计 (10)3.1 功能模块图 (10)3.1.1 系统总体功能图 (10)3.1.2 系统功能模块描述 (11)3.2 数据库设计 (12)3.2.1 概念结构设计 (12)3.2.2 物理结构设计 (13)第四章详细设计 (17)4.1 系统流程图 (17)4.1.1 前台管理流程图 (17)4.1.2 后台管理流程图 (18)4.1.3 登录模块 (18)4.1.4 系统管理模块 (19)第五章系统实现 (21)5.1 用户模块 (21)5.1.1 用户模块功能实现描述 (21)5.1.2 用户功能实现界面 (21)5.2 管理员模块 (23)5.2.1管理员模块实现描述 (23)5.2.2管理员功能实现界面 (23)5.3 遇到的问题和解决 (25)第六章系统测试 (26)6.1 测试目的 (26)6.2 测试方法 (26)6.3 测试要点 (26)6.3.1 功能测试 (26)6.3.2 安全性测试 (27)6.3.3 测试项目 (27)6.4 测试用例 (27)6.5 测试总结 (28)第七章总结 (29)参考文献 (30)附录程序代码 (31)第一章系统概述1.1实训开发的背景、内容以及目的1.1.1实训开发背景微博即微博客(microblog)的简称,由博客(blog)发展而来,最早也是目前最大的微博是美国的Twitter,中国最早开始微博业务的是门户网站新浪网。
新浪微博客户端的设计与实现
新浪微博客户端的设计与实现学院计算机学院专业计算机科学与技术(嵌入式系统方向)班级04010105学号2010040101170 姓名高志伟指导教师曹一鹏负责教师沈阳航空航天大学2014年6月摘要作为市场占有率第一的新浪微博客户端拥有着广泛的需求。
目前一些新浪微博客户端相对比较完善,功能也比较齐全,但基于市场利益考虑,有着不同程度涉及广告的行为,而且界面设计的相对传统,引起很多用户不满。
因此,本课题就致力于开发出一款基于Android平台的满足用户使用需求的新浪微博客户端。
为了实现新浪微博客户端,需要申请开发者账号,并且下载新浪微博Android SDK。
新浪微博Android SDK为第三方微博应用提供了微博API调用服务,使第三方微博客户端无需了解复杂的验证和API调用过程,就可以实现分享文字或者多媒体信息到新浪微博。
本文阐述了新浪微博客户端的各种相关知识,同时将设计过程中所用到的主要方法及控件进行了详细说明。
本应用实现了发表微博、评论微博、转发微博、我的资料、我的关注、我的粉丝、收藏评论等功能,具有较强的实用性;将服务接入微博平台,有助于推广产品,增加应用的流量、拓展新用户,甚至获得收益。
关键词:Android平台;新浪微博Android SDK;微博API调用服务Sina Micro blogging Client Design and ImplementationAbstractAs the market share of the first Sina micro blogging client has a wide range of needs。
At present,some Sina micro blogging client base is relatively sound,function relatively complete, but based on market interest, with varying degrees of behavior involved in advertising,and the interface is relatively conventional design, attracted a lot of user dissatisfaction。
jsp微博课程设计
jsp微博课程设计一、课程目标知识目标:1. 掌握JSP基本语法和常用内置对象,能运用JSP技术实现微博基本功能;2. 理解JavaBean的作用,能运用JavaBean封装用户和微博信息;3. 学会使用数据库存储微博信息,掌握SQL语句进行数据查询和操作。
技能目标:1. 能够独立完成微博系统的注册、登录、发表微博、查看微博等功能;2. 能够运用HTML、CSS等技术进行界面设计和布局,提高用户体验;3. 学会分析需求,设计合理的数据库表结构,实现数据存储和查询。
情感态度价值观目标:1. 培养学生主动探索新技术、解决问题的兴趣和热情;2. 培养学生的团队协作能力和沟通能力,提高项目管理意识;3. 增强学生的网络安全意识,培养良好的网络素养。
课程性质:本课程为信息技术课程,旨在通过实际项目案例,让学生掌握JSP 技术及其在实际应用中的使用。
学生特点:学生具备一定的Java基础,了解Web开发基本概念,对实际项目开发感兴趣。
教学要求:结合实际案例,注重理论与实践相结合,引导学生主动参与,培养实际操作能力和团队协作能力。
通过课程学习,使学生能够达到上述课程目标,具备一定的Web开发能力。
二、教学内容1. JSP基本语法与内置对象:包括JSP页面结构、指令、脚本元素、标准动作,以及request、response、session等内置对象的用法。
相关教材章节:第1章 JSP概述,第2章 JSP语法与内置对象。
2. JavaBean技术:介绍JavaBean的定义、编写规范,以及如何使用JavaBean封装用户和微博信息。
相关教材章节:第3章 JavaBean技术。
3. 数据库应用:讲解数据库的基本概念,SQL语句编写,以及如何使用JDBC 连接数据库,存储和查询微博信息。
相关教材章节:第4章 数据库基础,第5章 JDBC技术。
4. 界面设计与布局:运用HTML、CSS技术进行微博系统界面设计,提高用户体验。
android微博课程设计
android微博课程设计一、课程目标知识目标:1. 理解Android平台微博应用的基本功能与界面设计原理;2. 掌握微博应用中数据传递、处理和展示的技术要点;3. 学习运用Android开发工具进行微博应用的基本功能开发。
技能目标:1. 能够运用所学知识独立设计并实现微博应用的界面布局;2. 能够编写代码实现微博应用的登录、发微博、查看微博等功能;3. 能够对微博应用进行调试和优化,解决常见问题。
情感态度价值观目标:1. 培养学生对移动应用开发的兴趣,激发创新意识和探索精神;2. 培养学生团队协作意识,学会与他人共同解决问题;3. 引导学生关注网络社交现象,培养积极健康的网络素养。
课程性质:本课程为实践性较强的课程,以项目为导向,结合课本知识,使学生能够掌握Android平台微博应用的开发技能。
学生特点:学生具备一定的编程基础,对Android开发有一定了解,对微博应用有较高的兴趣。
教学要求:教师需采用案例教学、任务驱动等方法,引导学生主动探索,注重实践操作,提高学生的动手能力。
同时,关注学生的个体差异,给予个性化指导,确保课程目标的实现。
在教学过程中,将目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 微博应用概述:介绍微博应用的基本功能、界面设计及用户交互方式,关联课本第一章内容,帮助学生建立整体认识。
- 界面设计原理与布局:分析微博应用界面布局,学习Android常用布局方法,如LinearLayout、RelativeLayout等,结合课本第二章内容。
- 用户登录功能实现:讲解微博应用登录功能的技术要点,学习使用SharedPreferences、Intent等,关联课本第三章内容。
2. 微博功能实现:- 发送微博:学习使用EditText、Button等控件,结合课本第四章内容,实现发送微博功能。
- 查看微博:学习使用ListView、BaseAdapter等,展示微博列表,关联课本第五章内容。
031241318新浪微博安卓客户端课程设计报告
移动互联网开发课程设计报告学生姓名:谌敦斌学号:031241318 专业: 数字媒体技术班级:0312413设计题目: 安卓新浪微博客户端设计学年学期:2014 年秋季学期指导教师:张华目录(示例)一、设计题目 (2)二、设计目的 (2)三、设计原理及方案 (2)1使用的软件工具和环境 (2)2需求分析与概要设计 (2)3数据库设计(若有) (4)4详细设计和关键问题 (5)四、实现效果 (16)五、设计体会 (19)参考文献 (19)一、设计题目简易新浪微博客户端系统二、设计目的通过设计开发新浪微博客户端综合训练安卓系统开发能力,进一步提升对安卓程序开发及运行的理解和认识,学会团队协作,开发出界面与功能都有特色的安卓应用软件。
掌握并熟悉OAuth认证协议的工作原理,学会通过http的get或者post方式传参数获取相应的服务器应答信息,能够利用新浪微博官方提供的一系列接口完成简易微博客户端的开发.三、设计原理及方案1使用的软件工具和环境Eclipse jdk7。
0 Android SDK以及新浪官方提供的WeiboSDK、WeiboSDKDemo 和相应API2需求分析与概要设计众所周知,官方新浪微博客户端的功能非常完善,我们这次课程设计主要是模仿官版的微博。
具体的功能需求如下:1.我们的安卓客户端是在线运行的,也就是必须在有网络连接的情况下才能工作,如果没有联网将提醒用户打开网络连接。
2.为了安全起见,安卓客户端不建议直接使用用户名和密码进行登录,而是通过比较流行的OAuth认证授权后才能登录使用,所以授权功能是必须的。
并且在测试阶段,授权的用户必须经过开发者将其微博昵称添加到测试信息才能正常登录。
3.对于第一次授权成功的用户,我们需要把它的部分身份信息例如ID、昵称、头像url和token验证等保存到数据库,方便下一次直接登录。
因此要设计一个简易的数据库功能。
4.对于已经授权的用户,如果第二次登录,就不需要授权,而是直接进入登陆界面.因此还需要一个微博一键登录功能。
android新闻app课程设计报告
android新闻app课程设计报告一、课程目标知识目标:1. 学生能够理解Android新闻App的基本功能与构成要素;2. 学生掌握在Android平台上开发应用的基本流程和关键步骤;3. 学生了解网络数据获取、解析和展示的相关技术;4. 学生掌握新闻类App的用户界面设计原则。
技能目标:1. 学生能够运用Android Studio进行新闻App的界面设计与编码;2. 学生掌握使用SQLite数据库存储新闻数据的方法;3. 学生能够运用网络编程技术,实现新闻数据的实时更新与展示;4. 学生具备调试、优化和发布Android新闻App的能力。
情感态度价值观目标:1. 培养学生对编程和移动应用开发的兴趣,激发创新意识;2. 增强学生的团队协作意识,培养合作解决问题的能力;3. 培养学生关注社会热点,关注信息技术发展的态度;4. 提高学生的信息安全意识,养成保护用户隐私和数据的好习惯。
课程性质:本课程为实践性较强的课程,旨在培养学生的动手能力和实际应用能力。
学生特点:学生具备一定的编程基础,对移动应用开发感兴趣,具有较强的学习意愿和探究精神。
教学要求:教师应结合课本内容,采用案例教学、任务驱动等方法,引导学生主动参与实践,注重培养学生的实际操作能力和解决问题的能力。
在教学过程中,关注学生的学习反馈,及时调整教学策略,确保课程目标的实现。
通过本课程的学习,使学生能够独立完成一个具有实际应用价值的Android新闻App。
二、教学内容1. Android基础知识回顾:主要包括Android系统架构、开发环境搭建、四大组件等基本概念。
教材章节:《Android基础教程》第1-3章2. 新闻App需求分析与设计:- 功能需求分析:实时新闻浏览、新闻分类、搜索、收藏等;- 界面设计:UI布局、色彩搭配、字体选用等;- 数据库设计:新闻表结构设计、数据存储与查询。
教材章节:《Android应用开发实战》第4章3. 新闻数据获取与解析:- 网络编程:HttpURLConnection、OkHttp等网络请求库的使用;- 数据解析:JSON解析、XML解析等;- 数据库操作:SQLite数据库的增删改查操作。
基于Android系统的新浪微博客户端的设计与实现
独创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
论文题目:作者签名:日期:年月日论文版权使用授权书本人完全了解吉首大学有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件和磁盘,允许论文被查阅和借阅,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。
同意吉首大学可以用不同方式在不同媒体上发表、传播学位论文的全部或部分内容。
(保密的学位论文在解密后应遵守此协议)论文题目:学生签名:日期:年月日导师签名:日期:年月日基于Android系统的新浪微博客户端的设计与实现摘要本系统基于Android移动开发平台,使用Java语言开发,使系统具有良好的平台移植性和可扩展性。
新浪微博Android SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方微博客户端无需了解复杂的验证和API调用过程,就可以实现分享文字或者多媒体信息到新浪微博。
本系统包括四个模块:应用程序登录模块,主界面显示模块,微博浏览模块,用户模块。
在登录模块,用户可以使用授权配置和用户注册并且登录系统。
主界面显示模块中,用户可以发表新的微博和通过昵称搜索好友。
微博浏览模块,进入浏览微博的详细页面,用户可以评论微博和转发微博。
用户模块,可查看该用户的详细信息包括该用户的关注列表,话题列表,粉丝列表,和该用户所发表过的全部微博。
关键词:新浪微博开放平台;授权配置;微博API调用服务.Sina Micro-Blog Client Design and Implementation Based onAndroid SystemAbstractThis system based on Android mobile development platform, use Java language development and the system which has a good platform portability and expansibility. The Sina micro-blog Android SDK third-party micro-blog application provides document easy to use micro-blog API call service, so that the third-party micro-blog client without understanding the complex validation and API calls procedure, may realize to share text or multimedia message to Sina micro-blog.This system includes four modules: application login module, the interface display module, the blog browsing module, the user module. In login module, the user can use authorized configuration and user registered and logged in system. In interface display module, users can post new micro blog and through the nickname to search good friends. In blog browsing module, users can comment on the blog and forwarding the blog into the detailed page. In user module, can view the detailed information including the users' attention list, topics list, fan list, and all the blogs he has posted .Keywords:Sina Micro-Blog Open Platform; Authorized Configuration; Micro-Blog API Calls Service.目录第一章绪论 (1)1.1课题背景 (1)1.2微博简介 (1)1.3 Android简介 (2)1.4研究目标 (2)1.5研究内容、意义 (3)第二章系统分析 (4)2.1系统可行性分析 (4)2.2系统需求分析 (4)2.3系统规划概述 (5)2.4基于Android新浪微博客户端的建设原则 (6)2.5系统开发环境及相关技术 (6)第三章系统概要设计 (7)3.1系统设计目标 (7)3.2系统模块设计 (7)3.2.1系统功能模块划分 (7)3.2.2系统总体结构设计 (7)3.2.3系统模块用例图分析 (9)第四章数据库设计与实现 (18)4.1数据库概念结构设计 (18)4.1.1实体图 (18)4.1.2系统实体联系 (20)4.2系统数据库物理建模 (20)第五章系统详细功能实现 (23)5.1登录模块实现 (23)5.1.1用户授权配置模块 (23)5.1.2用户登录模块 (24)5.2主界面显示模块实现 (25)5.2.1显示最新微博列表 (25)5.2.3发表微博功能 (27)5.3微博信息浏览模块实现 (27)5.4获取用户信息模块实现 (29)5.4.1查看关注功能 (30)5.4.2查看用户所有微博信息功能 (30)第六章系统的测试与维护 (32)6.1单元测试 (32)6.2集成测试 (33)总结 (34)参考文献 (36)致谢 (37)第一章绪论1.1课题背景每一个时代都会催生新的理念,每一个理念又会引领新的潮流,每一个潮流又注定会冲破原有的桎梏,创新是时代的特征,更是IT业的标志。
sina微博实训文档
JavaEE课程设计报告书班级:软件092学号:200900834229姓名:李星运目录1.概述........................................................................................................ - 1 -2.名词解释 ................................................................................................. - 1 -2.1.OAuth:......................................................................................... - 1 -2.2.OAuth认证参数:........................................................................... - 1 -3.功能概述 ................................................................................................. - 2 -3.1.微博的认证和登录........................................................................... - 2 -3.2.微博的查看和刷新........................................................................... - 3 -3.3.发送微博信息 ................................................................................. - 5 -4.设计目的 ............................................................................................... - 11 -5.总体设计:............................................................................................ - 11 -6.详细设计:............................................................................................ - 12 -6.1.OAuth认证................................................................................... - 12 -6.2.获取RequestToken和AccessToken ................................................ - 15 -6.3.查看微博...................................................................................... - 16 -6.4.解析Json格式数据 ....................................................................... - 18 -6.5.发送微博...................................................................................... - 22 -6.6.转发和评论微博 ............................................................................ - 25 -7.结束语................................................................................................... - 27 -1.概述微博作为最新互联网社交网络的代表之一,在随着移动客户端的兴起已成为一种生活,快捷及时的交流和共享方式打破了原来的社交模式。
手机微博项目设计
项目设计报告题目:安卓手机微博目录1 概述 (3)1.1 目的 (3)1.2 背景 (3)1.3 范围 (4)1.4 术语定义 (4)1.5 参考资料 (5)1.6 任务概述 (5)1.6.1 目标 (6)1.6.2 用户的特点 (6)1.6.3 假定和约束 (7)1.7 运行环境 (7)1.7.1 软件环境 (7)1.7.2 硬件环境 (8)1.7.3 接口 (9)1.7.4 控制 (9)1.8 需求规定 (9)1.8.1 对功能的规定 (9)2 手机微博业务分析 (3)2.1 手机微博业务功能概述 (22)2.1.1 手机微博业务功能概述 (23)2.1.2 用户注册......................... 错误!未定义书签。
2.1.3 用户登录 (28)2.1.4 用户管理 (28)2.1.5 相册管理......................... 错误!未定义书签。
2.1.6 好友管理 (28)2.1.7 日志管理 (28)2.1.8 最近访客......................... 错误!未定义书签。
2.1.9 用例分析 (28)3 数据库设计 (22)3.1 系统物理结构设计 (22)3.2 表设计 (23)3.2.1 TableName(表名的解释) ............ 错误!未定义书签。
3.3 表之间的关联设计 (28)3.4 存储过程设计 (28)总结1概述1.1目的在微博的制作过程中为了满足客户的需求,为了向客户展示微博要做哪些功能,以及微薄的界面,人员分工和一些资金的使用等等特写此文档。
1.2背景当今社会是个高科技、高效率、高度竞争的社会。
随着物质水平的逐步提高,我们的的精神生活也开始趋向丰富多彩。
随着3G手机推入市场,一种新的网络应用形式————“微博”也应运而生。
“微博”以其便捷性,背对脸式的交互方式以及原创性得到了广大网民的宠爱,成为了网络时代新的代名词。
新浪微博for Android界面技术方案设计
新浪微博Android界面技术方案设计新浪微博Android界面设计方案,需要进行以下的分析和总结。
1、明确建立网站的目标和用户需求;2、确定总体设计方案主题;3、功能、框架确定及可用性分析(需要与软件开发人员共同探讨)4、原型设计,即初步板式确定及色彩使用分析;5、界面设计,即在相关软件上实现界面;6、修改并交予重构。
一、产品定位与市场分析阶段1、目的:了解新浪微博移动客户端(基于Android系统)针对的市场、客户群体、运行方式、盈利方式等,以确定相应的产品开发方向。
2、产品定位:新浪微博是一款为大众提供娱乐休闲生活服务的信息分享和交流平台。
娱乐——涵盖最全面的娱乐明星与资讯;生活——反映网民现实生活的点点滴滴;快乐——分享发现人们身边的趣闻轶事3、市场分析:截至2010年10月底,新浪微博用户数已达5000万,目前是中国用户数最多的微博产品,公众名人用户众多是新浪微博的一大特色,目前基本已经覆盖大部分知名文体明星、企业高管、媒体人士。
根据2010年官方公布数据显示,新浪微博每天发博数超过2500万条,其中有38%来自于移动终端。
每天发布微博数量超过两千五百万条,微博总数累计超过20亿条。
是目前国内最有影响力、最受瞩目的微博运营商。
移动客户端发展前景巨大移动客户端的优点在于其实时性,实地性,故可以将新浪微博移动客户端定位为新闻发布平台,信息交互平台,娱乐休闲平台,生活展示平台,快乐分析平台。
故在设计界面时,Android是目前主流的智能手机操作系统,那么智能手机在各个方面的应用当然也要体现出其系统优势出来,即给用户更好的交互体验及功能享受。
界面的展现会主要以微博为主,实现查看、发表、评论、分享等功能,结合Android良好的触控体验,二、用户需求分析1、目的:收集相关资料分析目标用户的使用特征、情感、习惯、心理、需求等,提出用户研究报告和可用性设计建议。
这部分工作有团队配合完成。
时间与项目需求允许的情况下,更可以制定实景用户分析。
新浪微博android客户端
新浪微博android客户端概述微博Android平台SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方客户端无需了解复杂的验证,API调用过程。
并可以实现分享到微博的功能,可以分享文字,或者多媒体信息到内置的分享页面,并发送到微博。
此SDK封装了 HTTP请求以及Json信息的解析,我们只要实现页面相关功能的开发就行了,这样对于我们Android开发人员来说,减轻了不少压力呀!名词解释Consumer_key 分配给每个第三方应用的app key。
用于鉴权身份,显示来源等功能。
Consumer_secret 生成请求request Token的secret,与consumer key一起分配。
Oauth_token 服务器根据app key和时间,callback_url等哈希出的token值,用于获取oauth verifier。
Oauth_token_secret 与oauth token一起使用,用于获取oauth verifier。
Oauth_verifier 通过oauth页面返回的verifier,用于最终获取access token。
Access_token 表示用户身份的token,用于微博API的调用。
整体架构及分层∙UI层∙微博中的各个窗体∙logic层∙程序的核心控制调度模块,获取UI传递的数据、要执行的任务,调用微博接口,获得网络数据,返回消息,刷新(切换)UI ∙微博接口层(新浪API已封装)∙网络访问层(新浪API已封装)1.OAuth(1)和初始页面介绍1.首先说明一下新浪微博提供了OAuth和Base OAuth两种认证方式(如果不知道什么是OAuth和BaseOAuth请自己google一下恶补),本项目是采用OAuth认证方式,采用这种方式就需要有用户的新浪UserID、Access Token、AccessSecret这3样东西才能自由便利的调用新浪的开放接口,本项目是这样做的当用户第一次使用软件时进行授权认证获取这3样东西的时候存储到SharedPreferences中以便用户下次使用时不需要重新进行繁琐的授权认证操作直接从SharedPreferences中读取出来即可,由于这样的需求载入页面的功能设定是这样:当用户打开软件显示载入页面时开始检查SharedPreferences中是否已经保存有用户的新浪微博的UserID号、Access Token、AccessSecret的记录,如果一条记录都没有那就说明用户是第一次使用本软件那么跳到认证授权页面进行授权认证操作(认证授权功能在接下来的两篇中进行实现讲解)获取这3个值保存到SharedPreferences中,如果已经包括了记录,那么读取这些记录的UserID号、Access Token、AccessSecret值然后根据这3个值调用新浪的api接口获取这些记录对应的用户昵称信息等!下图是OAuth认证的原理图1.开场动画及登陆好了既然了解的认证机制,那么我们就来实现这个功能,首先我们先为我们的项目设计开场动画,然后跳转转到登陆页面!(由于我没时间去做那么多精美的图片,所以教程中的图片大部分还是来自于原版的新浪微博,有兴趣的同学可以自己设计一些自己比较喜欢的图片,所以这里图片的资源引用我就不做详细的介绍了!)在UI层创建Logo.java 和Login.javalogo Activity的介绍Logo的布局文件就是两个ImageView,并对这两个ImageView设置动画效果上面的是一个帧动画,下面是一个渐变Alpha动画并对这个动画进行监听,当动画结束的时候我们启动Login Activity最后记得在mainfest中注册声明Login activity当做完这些,我们的基本页面就算完成了!2.了解程序的运行流程上图说明了程序的整体运行框架,接着我们来详细看一下Logic层的一些核心类的介绍,为我们的登录验证做好前置工作2.Logic核心层的的介绍:1. IWeiboActivity接口的介绍∙IWeiboActivity接口∙所有窗口实现∙init()方法∙完成初始化∙refresh(Objet ...args)方法∙完成窗体刷新∙3.Task类的介绍定义程序中的任务如:登录,发表新微博,获取用户微博,获取用户详细信息等各种任务int taskId//当前任务的IDMap params //当前任务的参数4.MainService的介绍(核心控制类)1. 首先说一下MainService的主要功能完成程序调度接收UI层数据(任务),完成业务逻辑,返回信息,更新UI在后台运行(继承自Service类)线程(实现Runnable接口)不断侦听UI传过来任务消息2. MainService流程图预览3. MainService的核心方法个变量List<Activity> allActivity保存当前所有Activity,方便切换List<Task> allTask把当前任务加到集合中然后开启线程在Task中遍历任务去执行任务public void run() {while (isrun) {Task lastTask = null;synchronized (allTask) {//这里有可能同时有多个任务并发所以要加锁同步if (allTask.size() > 0) {lastTask = allTask.get(0);Log.i("yanzheng", "任务ID" + lastTask.getTaskID());doTask(lastTask);}}// 每隔一秒钟检查是否有任务try {Thread.sleep(1000);} catch (Exception e) {}}当接线程发现任务会调用doTask(Task task)方法去执行任务Message mess = hand.obtainMessage();mess.what = task.getTaskID();//将当前任务的ID 放到Message中mess.obj = Object object;//讲当前任务执行的结果放到message中hand.sendMessage(mess);//发送当前消息allTask.remove(task);//当前任务执行完毕把任务从任务集合中removepublic void handleMessage(Message msg) 可以接收一个Message对象(也就是我们doTask中传递的Message)switch (msg.what) {case Task.TASK_GET_USER_HOMETIMEINLINE://任务ID//因为当前HomeActivity实现了IWeiboActivity这个接口,我们得到当前activity的实例,并调用它实现的刷新方法,同时讲参数传递过去,这里就实现了Service中刷新数据的方法了!IWeiboActivity ia = (IWeiboActivity) MainService.getActivityByName("HomeActivity");ia.refresh(HomeActivity.REFRESH_WEIBO, msg.obj);break;说到这里相信大家对MainService有了一个整体的了解,接下来我们通过登陆来验证我们Service’的功能!4. OAuth(2)登陆请求认证篇1.调用web进行登录验证上次我们的UI篇说到了登陆页面,接下来我们要做的就是实现登陆功能首先当我们进入Login activity时我们没有进行授权,就要给用户提示一个信息,让用户进入到授权页面!那么我们首先来做这个提示功能,并实现点击确定按钮,跳转到认证页面!首先我们来了解一下OAuthActivity 这个Activity我们需要特殊处理首先介绍一下他的注册当我们点击Dialog中的确定按钮先打开那个callbackurl 那个URL回调的页面就是我们的OAuthActivity .我们在这个页面就可以处理我们返回的数据,Uriuri=this.getIntent().getData();得到AccessToken的key和Secret,可以使用这两个参数进行授权登录了!这里我们需要保存我们的登陆信息以及AccessToken的key和Secret,下次在进入页面我们就不需要,从新授权,直接拿这个信息就可以进行登陆认证!那么OK 我们在这个页面进行保存信息!首先我们需要写一个方法来保存首选项SharedPreferences,将用户信息保存起来!那么接下来我们在Util下写这个方法!2.保存授权信息一个是保存当前用户信息,一个是读取用户保存的信息!在OAuthActivity中当我们点击登陆按钮,需要执行认证请求,然后将返回的数据保存在首选项中,在跳转到登陆页面! 此时我们的登陆页面依然有那个提示框,所以我们要判断当前首选项中是否有保存的用户信息,如果没有则提示那个登陆框,如果有得话,就把用户的昵称显示在EdieText中! 所以我们需要在初始化的时候判断当前的首选项是否保存了用户的信息如果提示认证的Dialog没有显示我们则可以点击登陆按钮在Service进行登陆请求此时我们需要做的就是当点击登陆按钮向Service发送一个任务,此时记住我们要在Manifest中注册MainService和在Login Activity启动MainService3.MainService任务执行流程前面我们说了MainService的工作原理,接下来我们来详细说下,当任务发送到Service接到任务会怎么处理!下图是我画的一个启动任务到完成任务的流程图通过上面的大致流程,相信大家!对Service的工作流程有了一个更深刻的认识接下来我们来讲解一下认证登陆的原理!用户安装完应用程序,第一次登录,会提示用户认证,用户认证调取的是新浪的页面,调用此页面需要第三方应用的appkey和用户在认证页面输入自己的账号密码提交到新浪,新浪会返回给第三方应用一个加密的密匙,第三方应用通过这个密匙(也就是用户的凭据),去向新浪服务器端请求用户的信息,完成登录!具体参考下图:5.主页面的实现当我们完成登录的验证,就会自动跳转的主页面,在实现主页面功能的开始我们先看一下程序完成后的效果图,下图就是我们完成后的新浪微博客户端的主页面!怎么样?看着心动吧!那么下面我们就来动手实现这样一个漂亮的页面首先我们来说明下,整个页面的组成部分!首先是外框架采用TabActivity,下面五个按钮是TabActivity布局文件的一组RadioGroup当我们点击任何一个页面的时候就会将该一个与之对应的Activity在当前页显示!1.TabActibity的实现首先我们要实现的就是布局文件,我们来创建一个maintabs.xml文件,里面是父容器是</TabHost>,在Tab Host中我们必须要写它的TabWidget属性,这里我们设置它不可见!下面就是我们的要实现的按钮组RadioGroup!如下图所示的效果!要实现下图效果我们就要需创建我们用来切换的5个ActivityHomeActivity//主页MSGActivity//信息UserInfoActivity//用户信息SearchUser//收索MoreSetting//更多这里我们的按钮都是使用的是同一个style效果,具体的参数属性设置参考style文件完成布局文件,接下来我们来实现TabActivity内代码的编写,来实现我们的需求!首先我们的activity需要继承自TabActivitytab1=this.getTabHost();//获取TabHostTabSpec ts1=tab1//tab子标签跳转到HomeActivity.newTabSpec(TAB_HOME)//设定标签.setIndicator(TAB_HOME);//指定一个标签作为选项卡指示符//指定一个加载activity的Intent对象作为选项卡内容ts1.setContent(new Intent(MainActivity.this, HomeActivity.class));tab1.addTab(ts1);//添加第一个子页TabSpec ts2=tab1.newTabSpec(TAB_MSG).setIndicator(TAB_MSG);//tab子标签跳转到MsgActivityts2.setContent(new Intent(MainActivity.this, MSGActivity.class));tab1.addTab(ts2);//添加第二个子页…….剩下的依次添加就行了下面的就是我们的点击切换页面功能的实现做完上面这一步,我们来先一下效果图!这样我们的主页面就搭建完成了!接下来我们就进入了微博的核心代码编写!2 .HomeActivity的实现1.主页面的基本内容展示.首先我们来简单的实现一下主页面的信息,简单的效果如下图所示那么我们现在首先要实现的就是布局文件,home.xml布局文件分为3个部分,标题头和进度条,以及ListView,前面我我们讲述了Service的工作原理,这里我们的HomeActivity只要实现IWeiboActivity这个接口.然后在in it()方法中去实例化任务,并把任务添加到MainService中,MainService的线程会去调用doTask()方法在dotask时候调用WeiBo这个类// 获取当前登录用户及其所关注用户的最新20条微博消息List<Status> allweibo = weibo.getFriendsTimeline();mess.obj=allweibo; //将获取信息放入到Message中发送然后在handmessage中将message传来的数据放入refresh(Object... param)方法中这里由于我们已经获取当前Activity的上下文,所以可以通过handle来更新当前Activity的页面信息,这里的param参数里就是我们放入的List<Status>allweibo,这里我们把它强制转换成List<Status> 传入adapter中! 讲LlistView setadapter 我们的主页面信息也就完成了!我这里解释一下 Status这个对象就是微博内容.里面封装了微博的各种信息这里我们可以根据传递的List<Status> 中微博内容的各种信息显示到ListView中!这里我们来实现另外一个功能就是我们现在主页面一次只加载5条微博信息,当我们的ListView 拖动到底部的时候会显示一项更多选项,当我们点击更多的时候,会去在向服务器请求,在加载5条微博显示!现在我们要做的就是写用来显示微博信息的Listview中的item布局,具体的实现代码参考item.xml;这里我就不在解释item.xml中的布局是如何实现的,首先我们来看一下当我们点击更多选项时,程序大致的运行流程现在我们就要了解另外一个概念分页,其实在SDK已经有一个方法就是专门为我们请求微博信息做分页的方法Paging(int page, int count) ,这里我们只要传递,当前的请求的页说和每页的条数!系统就会返回我们需要的微博条目!这里我们需要从新写上面init()方法中的任务参数!同时在Service请求微博的时候我们可以吧paging这个参数传递进去接下来我们来详细说一下我们的weiboAdapter这里我就主要解释一下 addmore()和getView 方法//请求更多的数据public void addmoreDate(List<Status> addmore){this.status.addAll(addmore);//吧新传得数据加到现在的list中this.notifyDataSetChanged();}上面的方法主要功能就是给当前的adapter添加新的数据,然后提醒当前的适配器数据发生改变了,此处使用this.notifyDataSetChanged();就是吧当前添加的新数据,追加显示到ListView中! 下面我们来说一下@Overridepublic View getView(int position, View conterView, ViewGroup parent) { ViewHolder vHolder;if (conterView==null) {//加载一个新的View当 Root为null时可以拿到所有XML的资源文件conterView=LayoutInflater.from(mContext).inflate(yout.itemview, null);vHolder=new ViewHolder();itemName=(TextView)conterView.findViewById(ItemName);…conterView.setTag(vHolder);}else {//如果缓存中没有就重新创建vHolder=(ViewHolder) conterView.getTag();}上面就是一个很普通的复用conterView,如果这一块看不懂得话还是好好看看Listview吧下面来看一下我们完成后的效果图实现完上面的效果!我们会发现尽管我们在Service中去下载微博信息来更新UI 界面显示,但是主页面依然会很卡.而且现实的时间要很久,因为每调用一次getView()就去下载那些微博内容图片,下载是一个耗时的操作,所以这里我们就需要做异步加载图片!至于关于什么是异步我相信大家都能理解,因为我们前面的项目中已经学习了异步加载,这里我就直接上代码,不做过多的解释,如果还有看不懂或者弄不明白的可以在来单独给我说!做到这里,细心的同学可能会发现一个BUG,就是我们如果按标准的convertview复用,就会出现一个问题,就是当我们采用上面那种标准的复用写法,加载的微博信息会出现错位,也就是说当我们的item不一样高度,页面显示的item数量不统一时,LlistView就会出现错位!当我们异步加载的时候不管怎么打标签就会发现图片依然会错位!这里我们需要另外一种写法,虽然效率上可能没用convertview复用高!但是它不会出现错位的现场!View statusView=null;if ((conterView!=null)&&(conterView.findViewById(R.id.contentPic)!=null)) { statusView=conterView;}else {//如果缓存中没有就重新创建//加载一个新的View当 Root为null时可以拿到所有XML的资源文件statusView=LayoutInflater.from(mContext).inflate(yout.itemview, null);}ViewHolder vHolder=null;vHolder=new ViewHolder();Content=(TextView)statusView.findViewById(ItemContent);vHolder.ivitemPorprait=(ImageView)statusView.findViewById(R.id.ivItemPortrait);………..vHolder.contentPic=(ImageView)statusView.findViewById(R.id.contentPic);通过这种方式去实例化我们item中的每一个子控件!至于每个item要显示什么数据,就是根据 Status mstatus=status.get(position);来判断,这里我们通过if (mstatus.getRetweeted_status()!=null) {….}判断当前微博是否是又转发!其中, mstatus.getRetweeted_status()获得的同样是status对象,我们同样可以判断是否有内容图片之类的,具体的判断参考WeiboAdapter其中需要我们注意的是我们的Item 中的布局可以简单的看成3不封,左边是头像,右边是上下两部分,上面是微博内容,下面是又转发内容,如果没有使用又转发,我们可以显示所有微博内容,包括内容图片,还有就是我们的新浪V认证,是系统认真的用户我们就给一个V字标示!到这里我们的主页面就算基本完成接下来我们来实现基本菜单的功能2.菜单功能的实现实现效果如下图所示:具体怎么实现 ,这里我就不说了很简单,不明白得可以参考代码这里菜单功能的实现,由于时间的原因,我们就只只实现退出功能,其余的我们可以根据API进行扩展实现,这个退出功能的代码我们只在Service中实现,下面我们来写这个代码public static void exitAPP(Context context) {Intent it = new Intent("weibo4android.logic.util.MainService");context.stopService(it);//停止服务//杀死进程我感觉这种方式最直接了当android.os.Process.killProcess(android.os.Process.myPid());for (Activity activity : allActivity) {//遍历所有activity 一个一个删除activity.finish();}}接下来我们来实现一个小功能就是当我们点击back键的时候,程序就退出去了,这样给用户的体验很不好,这里我们就需要拦截Back键执行的动作,去弹出一个确认退出提示框,当用户点击确认的时候,才会退出应用程序!这里我们需要重写父类的onKeyDown(int keyCode, KeyEvent event){….}方法这里if (keyCode == KeyEvent.KEYCODE_BACK) {btexit();//当我们按下返回键的时候要执行的方法return true;}这样我们就完成了Back键的拦截在btexit()方法中我们弹出一个dialog 让用户选择是否退出!实现玩这个功能,我们就来实现标题头按键及功能的实现!3.实现布局标题头我们要实现的效果如下图所示,当我们点击写微博按钮和刷新按钮执行相应的功能因为我们这个标题都可能多出会用到所以,这里我们两边的ImageView默认是没有内容的当我们需要在一个Activity显示什么按钮是可以找到那个imageview的ID,我们这当前的Aictiity去给那个imageview指定按钮图片!接下来我们从Service取得当前用户,并将它的用户名称名显示在title中间那么我们现在来实现标题头的两个按按钮的功能,首先我们说一下刷新主页面微博信息的功能如何实现当我们点击刷新按钮时,头部的进度条会显示,,同时刷新按钮不会显示!刷新的功能是就是从新请求第一页的信息来显示,从新加载listView(这里可能需要优化)写完点击事件,我们接下来要写的就是发表微博,这里我们首先要创建一个新的activity3.发表一条新微博当我们在HomeActivity点击写微博按钮,就会跳转到发送微博的Activity,这里我们新建一个WriteWeibo,写微博页面的布局很简单,现在我们先看一下布局的实现这个布局的底部功能,没有实现,大家有兴趣的尅自己实现,这里我们就只实现一个主要功能,就是当我们点击发送按钮,发送当前文本框中内容!在WriteWeibo,里有一个方法,这里我们来解释一下这里我们只是简答的只能发布文字微博,如果我们发布成功,就结束当前页面微博类有发送带图片和当前位置的方法,有兴趣的同学也可以自己看一下6.微博信息页面1.显示当前点击的微博信息当我们点击主页面的微博信息时,可以跳转到微博信息页面,这里我们新建一个叫WeiboInfo得Activity!当我们在主页面点击某一个Item的时候就会跳转到这个页面,那么我们来看一下,点击那一快代码当我们到另外一个线程的时候,新启动一个线程,来接收这些数据,并用handle来更新这些数据到页面显示!这里先贴出显示效果给大家看一下页面布局没什么特别的,就是底部是通过一个线性布局,加5个TextView来实现的,别的基本上没什么技术含量!它也可以设置自己的点击事件,这里我们实现了评论转发收藏这三个功能!别的就没什么难度了,大家可根据自己的需要来实现!这里我们来介绍另外一个工具类WeiboUtil,这个类里面写的是一些我们对微博操作的方法,比发表,转发,评论微博…至于如何实现这些方法,我是通过官方SDKWeiBo类里的实现方法,直接调用的,如果哪位同学先练习http请求那一块可以自己写方法来实现,很简单只要把官方要的参数传递过去就行请求URL https:///2/statuses/repost.json返回的是Gson数据,解析就行了至于WeiboUtil里面的方法,我相信大家一看都明白了2.评论页面当我们点击微博新页面的评论按钮,就到了评论页面!页面布局很简单,这里给大家看一下效果图页面布局没什么好说的这里我们就说一下代码部分!在创建的时候获取上一个页面传递的微博的ID,在我们点击提交评论的时候将文本框中的评论内容提交!并判断是否讲内容发布成微博下面的按钮功能由于时间的原因我一直没弄,如果按照官方的做法,我现在还实现不了大家如果有能力的话可以自己实现,其中@ 和话题很简单就是在当前文本框中插入一个“@”符号和# 内容 #符号至于表情实现是能实现但是优化的有问题大家可以从官方去下载那些表情用网格视图来显示那些表情坐标就是插入你当前的位置,这里要调用GPS 我还没研究3.转发页面首先看一下效果图吧,拿图说话这个布局我就不用解释了 ,底部的那个是单独的一个布局,这里用include吧那个布局包含到我们需要的页面下面就是一个线性布局,包含5个ImageButton转发页面其实很简单,我们在weiboInfo那个activity点击转发将我们需要的信息传递到转发页面只要我们点击发送就实现了转发功能,具体实现参考代码7. UserInfoActivity页面1.页面布局主页面的布局实现稍微有点复杂 ,也有可能是我实现的方法不合理,但是效果达到了!此布局主要分为五大块第一 <!-- 头布局 --> 显示标题头信息第二 <!-- 用户头像及用户名布局 --> 显示用户头像那一块第三 <!-- 用户地址和登录布局 --> 此处采用了 2个层叠和2个相对布局完成第四 <!--微博话题粉丝条数布局 --> 此处采用了大的线性和相对层叠布局嵌套完成第五 <!--底部收藏和黑名单 --> 此处布局与第三布局向类似整体部分采用一个大的ScrollView 这样方便我们浏览更多的东西具体的可以参考代码布局userinfo.xml下面我们来看一下代码实现的效果图2.代码实现代码部分就相对简单一点,还记得我们在登录认证的时候,获取当前的User对象,也就是我们自己,在Service中我们设置当前user为当前登录的User对象这里我们可以直接取哪里的数据将当前User的各种需要显示的属性显示到这个页面具体的代码参考UserInfoActivity这里我们可以点击关注,微博,粉丝,话题,按钮来到想对应的Activity这里由于时间原因,实现的过程先放到后面,到时候我会把我以前写的代码贴出来供大家参考,其实自己实现的话也很简单 ,大家没事可以多看看WeiBo这个类好多我们需要的功能人家都给封装了这里我们只要会调用就OK了这里我们来实现更多项的布局8.MoreSetting页面的实现这个页面除了布局基本上没什么好说的这里我们就先上布局效果给大家看看这是在xml中实现的布局效果,这个布局跟新浪的菜单项布局不一样,我感觉那个看着不舒服所以就做了一个这样的!里面大部分内容采用表格布局,没有使用什么自定义控件,所以大家看起了没什么困难就是实现嵌套的比较繁琐,如果前面几个加这个UI都能OK的话,我相信android这一块你的布局就没什么大的问题了呵呵通过OutLine我们可以很清晰的看出此页面的流程结构对于各种布局的嵌套使用,掌握好规律实现起来还是挺简单的至于菜单项的功能,我们这里先不做过多具体的实现,这里我先将,实现的框架搭建好,方便大家以后自己实现好了更多菜单项页面我们已经基本完成下面我们来看一下收索页面的实现9. SearchUser页面的实现还是老规矩,直接上效果图,然后我们在来看实现过程那么首先我们来看一下这个页面的布局,分为三个部分,头部是一块收索那是一块,下面那一大块是一个Listview!稍微有点难度的是中间那一块那么我们就首先来讲解中间那一快得问题,上面是一个相对布局,里面一个AutoCompleteTextView,这个AutoCompleteTextView采用了一个自定义的背景布局,还有一个button就是那个收索按钮底部是一组RadioGroup,里面是两个RadioButton,采用了自定义的style<style name="search_radiobutton_user"><item name="android:textColor">#ff7f7f7f</item><item name="android:ellipsize">marquee</item><item name="android:background">@drawable/search_radio_user</item><item name="android:paddingLeft">55.0dip </item><item name="android:layout_width">fill_parent</item><item name="android:layout_height">fill_parent</item><item name="android:button">@null</item><item name="android:singleLine">true</item><item name="android:drawablePadding">6.0dip</item><item name="android:layout_weight">1.0</item></style这样我们就完成了收索页面的布局实现,接着我们来做一下代码功能的实现当我们在搜索框输入搜索字段点击收索会调用下面的方法给Service发一个任务在Service中接收到任务会根据我们传入的搜索字段去搜索相应的微博,根据我们的分页显示来返回数据,实现原理跟HomeActivty一样,这里我就不在详细接收,他也有点击事件,当我们点击某一条搜索的微博信息,也会跳转到We iboInfo这个页面来显示某一条微博详细信息收索微博的方法一样我写在了WeiboUtil类里面,这里我解释一下doweisetTok(context, weibo);这个方法,这里因为有些操作需要登陆验证,这里我们需要从新setToken,所以我就把这个方法写到这个工具类里面了!后记:这里我在扩展两个功能就是检查网络和自动选择自动登录自动登录就是吧checkbox的选择结果存到首选项,在根据这个值来判断,是否选择了自动登录功能!网络检查就是WeiboUtil中的一个检查当前网络连接是否正常的方法!10.项目总结与扩展转眼我们这个项目的基本介绍已经接近尾声了,现在我们来总结一下整个项目的核心内容整个项目的框架结构,本项目采用了一种很优秀的设计实现,就是通过Service加载数据在前台更新页面的设计模式,通过Task任务类来区分各种任务,及任务传递的参数信息,我们可以在Service中去做一些耗时的操作,讲获得的数据message发送到handle中,在doTask方法我中我们可以将message 中消息的信息通过refresh(Object... param)方法将参数在当前页面加载,由于此方法是在Service中加载所以不会照成UI阻塞.我们应该让我们的Acitivity尽可能的简洁,最好只负责数据信息的现实,至于逻辑和加载内容,我们最好放在后台或者线程中去处理!下面我们来说一下这个项目的扩展实现,其实比起官方的客户端应用我们做的还是相当的简陋,这里我说一下我们有能力可以实现的一些功能(1):菜单功能的完善(2):主页面上下文菜单的实现(3):私信接口的调用与数据的获取显示(4):搜索页面的标签选项(5):数据库的创建,保存当前用户的信息,方便切换账号使用(6):更多页面的部分功能(7):@人名与话题文本高亮显示(8):表情的解析与显示还有一些细节性的功能我们可以根据自己的需求进行实现,我相信如果大家把文档的内容实现,在把这些扩展的功能实现一部分!找份合适的android开发工作还是不是问题的!呵呵….。
本科毕业设计---新浪微博android客户端的实现
编号:〔 〕字 号本科生毕业设计〔论文〕题目:姓名: 学号: 班级:二〇一二年六月微博客户端的设计开发计08-3班中国矿业大学本科生毕业设计姓名:学号:学院:计算机科学与技术专业:计算机科学与技术设计题目:微博客户端的设计开发专题:指导教师:徐慧职称:讲师2021 年6月徐州中国矿业大学毕业设计任务书学院计算机科学与技术专业年级计08级学生姓名任务下达日期:2021年1月10日毕业设计日期:2021 年1月4日至2021年6月10日毕业设计题目:微博客户端的设计开发毕业设计专题题目:毕业设计主要内容和要求:毕业设计的软件内容及要求:1.用户界面美观实用,便于各功能页面导航。
2.系统各功能模块要明确划分。
论文的内容及要求:1.论文对系统设计的思想进行详细描述,介绍整个软件开发过程。
2.进行系统需求分析,概要设计,详细设计,性能测试。
3.说明开发过程中遇到的问题极其解决方法。
4.最后写出软件开发的体会及收获。
5.严格按照软件工程要求的格式编写文档。
院长签字:指导教师签字:指导教师评语〔①根底理论及根本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题;⑧是否同意辩论等〕:成绩:指导教师签字:年月日指导教师评语〔①根底理论及根本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题;⑧是否同意辩论等〕:成绩:指导教师签字:年月日中国矿业大学毕业设计辩论及综合成绩摘要微博即MicroBlog,网上昵称围脖,是一种非正式的迷你型博客,是一个基于用户关系的信息分享、传播及获取平台。
用户可以通过WEB、WAP以及各种客户端组件个人社区,以140字左右的文字更新信息,并实现即时分享。
它是一种互动及传播性极快的工具,传播速度甚至比媒体还快。
新浪微博android客户端需求分析
新浪微博android客户端需求分析系统需求分析
此次程序设计任务是Android平台下的新浪微博客户端设计,程序将在Android模拟器中进行调试。
此次程序设计用户界面要求较为友好,由于针对的用户为Android智能手机用户,因此程序的操作全部可以通过输入笔完成操作。
新浪微博客户端数据库设计要求合理,其中包括用户账号,用户密码,用户获取的授权码钥匙和用户获取的授权码密码等信息。
在设计完成后,要求程序能够实现新浪微博的登录功能,同时,程序还必须能够实现对对新浪微博首页信息的获取,用户资料,好友资料,发表微博,用户的关注,用户的粉丝,转发微博,评论微博,收藏微博,我发表的微博等。
最后,新浪微博获取信息要具有较高的执行效率。
此程序设计要求需要在Eclipse环境下开发。
系统的结构设计
此应用程序遵循MVC设计模式,即:模型(Model),视图(View)和控制(Controller)。
MVC模式的目的就是实现Web系统的智能分工。
Model层实现系统中的业务逻辑,通常可以使用JavaBean或EJB来实现,View层用于与用户交互,通常用JSP实现,Controller层是Model和View之间沟通的桥梁,它可以分配用户的请求并选择适当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
用例图
发表微博
转发微博
评论微博
收藏微博
登录
好友资料用户首页我的粉丝我的微博我的关注我的资料。
安卓课程设计报告
安卓课程设计报告一、教学目标本课程的教学目标是使学生掌握Android基本概念、开发环境搭建、应用程序设计、界面布局、多媒体应用、网络编程和数据存储等知识,培养学生具备实际的Android应用开发能力。
1.理解Android操作系统的基本原理和架构;2.熟悉Android开发环境搭建及应用项目结构;3.掌握Android界面布局和控件使用;4.了解Android多媒体应用开发;5.掌握Android网络编程和数据存储技术。
6.能够搭建Android开发环境并编写简单的应用程序;7.能够使用Android Studio进行项目管理和代码调试;8.能够设计并实现Android界面布局和交互功能;9.能够开发Android多媒体应用,如音乐播放器、图片浏览器等;10.能够进行Android网络编程和数据存储,实现数据的增删改查功能。
情感态度价值观目标:1.培养学生对计算机科学和软件开发的兴趣,激发创新精神;2.培养学生团队合作意识和沟通能力,提高解决实际问题的能力;3.培养学生具有良好的职业素养,遵守软件开发规范,注重用户体验。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个方面:1.Android基本概念和架构:Android发展历程、Android系统架构、Android应用组件等;2.Android开发环境搭建:Android Studio安装与使用、模拟器调试、代码编译与调试等;3.Android界面布局和控件使用:线性布局、相对布局、绝对布局、常用控件属性及使用方法等;4.Android多媒体应用开发:音频、视频、图片、相机等媒体资源的获取和处理;5.Android网络编程:HTTP通信、JSON解析、XML解析、网络请求等;6.Android数据存储技术:SharedPreferences、文件存储、SQLite数据库等;7.实际项目案例分析与实践:分析并改造现有应用,完成个人作品的开发与发布。
课程设计报告andriod
课程设计报告andriod一、教学目标本课程旨在让学生掌握Android应用开发的基本知识和技能,包括Android平台架构、Activity生命周期、Intent、布局文件、控件使用、事件处理等。
通过本课程的学习,学生能够独立开发简单的Android应用,培养他们对移动应用开发的兴趣和创新能力。
具体来说,知识目标包括:1.理解Android平台的基本架构和组件。
2.掌握Activity的生命周期和启动方式。
3.熟悉Intent的使用,了解不同类型的Intent。
4.了解Android的布局文件和控件属性。
5.掌握事件处理的基本方法。
技能目标包括:1.能够使用Android Studio创建和管理Android项目。
2.能够编写简单的Activity代码,实现用户界面与逻辑处理。
3.能够使用Intent在不同Activity之间传递数据。
4.能够使用基本的布局文件和控件开发用户界面。
5.能够处理用户触摸、点击等事件。
情感态度价值观目标包括:1.培养学生对移动应用开发的兴趣,激发创新精神。
2.培养学生团队合作意识,提高沟通与协作能力。
3.培养学生良好的编程习惯,提高代码质量。
二、教学内容本课程的教学内容主要包括以下几个部分:1.Android平台架构:介绍Android系统的基本架构,包括操作系统、应用框架、运行时和硬件抽象层。
2.Activity生命周期:讲解Activity的创建、运行、暂停、停止和恢复等状态,以及如何管理Activity栈。
3.Intent:介绍Intent的概念和使用方法,包括显式Intent和隐式Intent,以及如何使用Intent进行页面跳转和数据传递。
4.布局文件和控件使用:讲解Android的布局文件结构,介绍常用的控件及其属性,如何编写自定义控件。
5.事件处理:讲解用户触摸、点击等事件的处理方法,包括监听器和事件过滤器。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前置条件:未通过授权认证或者未登录的用户。
后置条件:通过授权配置或者直接登录系
用户登录和授权模块流程图如图所示:
图 用户登录和授权流程图
.系统首页信息显示模块
功能描述:显示被用户添加关注的好友的最新微博信息。
参与者:合法登录用户。
前置条件:已登录用户。
后置条件:在首页显示所有被用户添加关注的最新微博信息列表。
否则将进入授权页面,进入授权页面的用户需要输入新浪微博用户名和密码并且允许授权后方能进入主页面。
进入主页面后用户可以查看当前用户及其所关注用户的最新微博,可以转发、评论和点赞。
在“消息”页面,用户可以查看用户的微博、评论和赞等,还可以发送私信。
在“更多”页面,用户可以发送微博,包括纯文字微博,带图片的微博、拍照微博等,还可以点评和签到。
1
以及新浪官方提供的、和相应
2
众所周知,官方新浪微博客户端的功能非常完善,我们这次课程设计主要是模仿官版的微博。具体的功能需求如下:
1.我们的安卓客户端是在线运行的,也就是必须在有网络连接的情况下才能工作,如果没有联网将提醒用户打开网络连接。
2.为了安全起见,安卓客户端不建议直接使用用户名和密码进行登录,而是通过比较流行的认证授权后才能登录使用,所以授权功能是必须的。并且在测试阶段,授权的用户必须经过开发者将其微博昵称添加到测试信息才能正常登录。图数据库图对应的数据来自如表:表用户信息表结构
字段名
数据类型
宽度
是否可空
说明
用户
字符串型的
用户昵称
授权认证请求码
用户头像网络地址
4
详细设计:
.用户登录和授权模块
功能描述:对于第一次使用该应用的用户,在程序启动之后进入配置页面,输入用户名和密码进行授权认证。对于用户在自己的手机上使用过或者已经通过了授权认证则可以不用输入用户名和密码就可以选择用户进行登录。
查看微博内容模块用例如下图所示:
图 查看微博用例图
评论微博功能流程图如下图所示:
图 评论功能流程图
转发功能流程图如下图所示:
图转发功能流程图
.查看用户信息模块
功能描述:查看好友的详细信息。
参与者:合法登录用户。
前置条件:已登录用户。
后置条件:查看好友详细信息(包括所有微博,话题,关注,粉丝)关注和取消关注操作。
参与者:合法登录用户。
前置条件:已登录用户。
后置条件:搜索成功返回结果。
搜索功能流程图如下图所示:
图搜索功能流程图
.查看微博内容模块:
功能描述:该模块实现了用户可以通过点击某一条微博信息查看该微博的所有内容,并进行评论和转发操作。
参与者:合法登录用户。
前置条件:已登录用户。
后置条件:可以转发和参与评论。
二、
通过设计开发新浪微博客户端综合训练安卓系统开发能力,进一步提升对安卓程序开发及运行的理解和认识,学会团队协作,开发出界面与功能都有特色的安卓应用软件。掌握并熟悉认证协议的工作原理,学会通过的或者方式传参数获取相应的服务器应答信息,能够利用新浪微博官方提供的一系列接口完成简易微博客户端的开发。
三、
在“发现”页面,用户可以搜索热门微博和找人等等。
在“我”页面,用户可以查看自己的身份信息,以及自己发的微博、用户的关注和粉丝等等。
3
在此次微博客户端开发过程中,我们用到了一点点数据库,就是将授权成功后的用户部分身份信息保存到数据库,方便用户下次一键登录而不用授权。由于只用到了一个用户信息表,它的图如图所示
3.对于第一次授权成功的用户,我们需要把它的部分身份信息例如、昵称、头像和验证等保存到数据库,方便下一次直接登录。因此要设计一个简易的数据库功能。
4.对于已经授权的用户,如果第二次登录,就不需要授权,而是直接进入登陆界面。因此还需要一个微博一键登录功能。
5.登陆的用户能获取到新浪微博首页的信息、用户资料、好友资料,能够发表微博、转发微博、点赞微博、评论微博、收藏微博,获取关注信息,粉丝信息,查看自己发的微博等等。
查看用户信息模块用例如下图所示:
图 查看用户信息用例图
查看关注和添加关注功能具体流程图如下图所示:
图查看关注和添加关注流程图
查看用户所有微博列表功能流程如下图所示:
图 查看用户所有微博列表流程图
遇到的关键问题:
1.认证,如何获取授权?
这也是我们这个微博客户端开发过程中的一个难点,就是怎么样与新浪微博的官方服务器交流并得到相应的响应信息。刚开始想了很久,也跟着一个视频教程一步一步做,可后来发现,新浪微博的一些东西包括接口等是随着时间不断在更新的,我们要做这个客户端,必须去了解官网上相应的文档,根据具体的接口具体设计。首先我们需要到新浪微博官网去注册我们要开发的,填写相关的信息。注册网址是,当然新浪微博提供给开发者一个非常好的平台,像网站接入、站内应用、无线游戏等等,由于我们开发的是安卓客户端,因此选择微连接里面的移动应用。在填写基本信息时有个包名和签名比较重要,包名必须与源程序的包名一致,并且签名必须是在安装了微博签名器的安卓平台上输入包名后得到的签名,包名与签名错误将会导致应用不可以用。另外,在高级信息里的回调页地址也比较重要,它是一个地址,形式可以任意,但必须与源代码里面的回调地址一样。注册了后,会生成一个 ,这个 非常重要,我们请求授权时所需要的参数就包含它。
6.同样为了安全起见,还需一个注销登录功能。一旦用户点击注销之后,下一次登录必须先经过授权才能正常登录。
系统的总体架构设计如图所示
图 系统总体架构设计
如图所示,我们的微博客户端首先进入界面,在加载中首先判断网络是否连接,如果网络是可用的,将进入下一步,否则将提醒用户打开网络连接。
网络连接成功后系统还将判断用户是否已经授权,如果已经授权则可以直接通过登录进入主界面。
移动互联网开发
课程设计报告
学生姓名:谌敦斌学号:
专业:数字媒体技术班级:
设计题目:安卓新浪微博客户端设计
学年学期:年秋季学期
指导教师:张华
目
一、设计题目
二、设计目的
三、设计原理及方案
使用的软件工具和环境
需求分析与概要设计
数据库设计(若有)
详细设计和关键问题
四、实现效果
五、设计体会
参考文献
一、
简易新浪微博客户端系统
该模块用例如下图所示:
图 系统首页信息显示用例图
系统首页显示模块流程图如图所示:
图显示主界面流程图
.发表微博模块
功能描述:该模块主要实现了用户发表微博的功能。
参与者:合法登录用户。
前置条件:已登录用户。
后置条件:新微博信息是否发表成功。
.通过关键字搜索相关用户模块
功能描述:该模块主要实现了通过关键字搜索相关用户的功能。