安卓记事本开发报告
安卓日记本实训报告
一、前言随着移动互联网的快速发展,手机已经成为人们日常生活中不可或缺的伙伴。
安卓系统作为全球最流行的移动操作系统,其应用开发领域具有广阔的市场前景。
为了提高自己的实践能力,我在学校组织的一次安卓开发实训中,选择了一个简单的应用——安卓日记本进行开发。
以下是我在实训过程中的心得体会。
二、实训目的1. 熟悉安卓开发环境,掌握安卓开发的基本流程;2. 学习并运用Android SDK进行应用开发;3. 培养团队协作能力和沟通能力;4. 提高自己的编程能力和解决问题的能力。
三、实训内容1. 项目背景及需求分析安卓日记本是一款简单实用的应用,主要用于记录用户的日常生活点滴。
用户可以创建多个日记本,添加日记条目,并设置日记的标题、内容、时间等信息。
此外,日记本还支持添加图片、视频等多媒体内容。
2. 技术选型在本次实训中,我选择了以下技术:(1)开发语言:Java(2)开发工具:Android Studio(3)数据库:SQLite(4)UI框架:Android UI组件3. 系统设计安卓日记本系统主要分为以下几个模块:(1)用户模块:包括用户注册、登录、修改密码等功能。
(2)日记本模块:包括创建日记本、添加日记条目、编辑日记条目、删除日记条目等功能。
(3)日记条目模块:包括日记的标题、内容、时间、图片、视频等信息。
(4)多媒体模块:包括图片、视频的添加、删除、预览等功能。
4. 系统实现(1)用户模块实现在用户模块中,我使用了Android SDK提供的SQLite数据库来实现用户注册、登录等功能。
用户注册时,将用户名、密码等信息存储到数据库中;用户登录时,从数据库中查询用户信息,验证用户名和密码是否匹配。
(2)日记本模块实现在日记本模块中,我使用了Android UI组件实现日记本的创建、编辑、删除等功能。
用户可以通过点击菜单或长按日记本条目来执行相关操作。
(3)日记条目模块实现在日记条目模块中,我实现了日记的标题、内容、时间、图片、视频等信息的添加、编辑、删除等功能。
基于Android的日记本的设计与实现的研究报告
基于Android的日记本的设计与实现的研究报告随着智能手机的普及和移动互联网的进一步发展,移动应用越来越受到人们的重视。
而日记本作为一种记录生活、记录思考的方式,也有着越来越广泛的应用。
本文旨在探讨基于Android平台的日记本的设计与实现。
一、需求分析在设计与实现日记本应用之前,需要先对其功能进行需求分析。
一般来说,日记本应用需要满足以下要求:1. 编辑日记:可以编辑、保存、修改和删除日记。
2. 时间记录:可以记录日记的时间,用户可以查看当天、周、月的日记。
3. 标签管理:可以为每一篇日记添加标签,便于用户查找。
4. 备份与恢复:可以进行数据备份和恢复,防止数据丢失。
5. 登录与注册:为了保证用户隐私的安全,需要提供登录和注册功能。
二、设计与实现基于以上需求,设计了一个基于Android平台的日记本应用。
1. UI设计UI设计采用了Material Design的风格,整体设计简洁、美观、易用。
主界面采用了ViewPager和TabLayout相结合的方式,可以进行快速切换不同的界面。
2. 日记编辑用户可以在主界面中点击加号添加新的日记。
日记编辑页面提供了标题、内容和标签的编辑,同时具备保存、修改和删除日记的功能。
3. 时间记录在主界面的Toolbar中加入了一个时间选择器,用户可以选择不同的时间范围查看当天、周或月的日记。
4. 标签管理在主界面中通过点击“标签”按钮弹出一个标签管理页面,用户可以添加、修改和删除标签。
用户可以给每一篇日记添加标签,便于查找和分类。
5. 备份与恢复在主界面中通过点击“备份”和“恢复”按钮进行数据的备份和恢复。
6. 登录与注册用户需要登录或注册才能使用日记本应用,为了保护用户隐私,采用了密码加密和保护机制。
三、总结经过以上的设计与实现,这个日记本应用提供了完整的日记管理功能,具备了美观、简约的UI设计。
应用还可以进一步优化,例如加入云同步功能、图片上传等,以满足更多用户需求。
安卓记事本开发报告
基于Android平台记事本的设计与实现1.设计目的记事本的基本功能就是记事,手机用户首先用到的就是文本记事,输入事务信息以文本的形式展现出来,存储起来。
随着用户需求的增加,可能希望用图形来代替文本来记事,用户之间打开记事本,看到图片就能联系自己所记载的事务信息。
这样免去了输入文字的麻烦,反而会更简单。
又或者是文本与图片的交叉运用,可以让用户自己选择自己喜欢的记事方式,更加自由与便捷。
所以此功能的意义是让简单的记事信息能以文本、图文和视频表达,更加丰富多彩。
2.设计内容本设计的基本内容是在Android平台下,设计与实现记事本软件。
具体要实现的功能是:(1)设计实现添加“文字”,“图文”,“视频”这三个主要的功能模块。
(2)进入添加后,有“保存”,“取消”两种选择。
(3)主页面显示记事列表,点击可查看及时内容,并有“删除”,“返回”两种选择。
(4)进行测试并分析结果。
3.开发环境的安装与配置3.1 Android开发平台搭建本设计主要是以Eclipse为基础,安装SDK和ADT插件后,用来开发安卓项目。
开发平台搭建步骤介绍如下。
(1)下载JDK并安装,安装后配置环境变量。
(2)下载Eclipse解压至指定文件夹。
(3)下载SDK后解压至指定文件夹,打开SDK目录,点击SDK Manager安装开发安卓项目需要的包。
(4)启动Eclipse,进入Help—>Install New Software—>Add,添加ADT插件。
(5)进入Window—>Android—>Browse,选择SDK安装目录。
3.2硬件环境Android设备,如Android手机或平板电脑,主频在1Ghz及以上,内存为512MB以上,系统版本为Android2.1及以上。
本设计使用Android4.4.4的手机。
3.3 软件环境操作系统:windows10IDE:EclipseAndroid SDK 集成环境4.设计主体架构4.1 src文件夹src文件夹下com.liwenhuan.notepad包下为系统主要Activity类:NotesDB.java是进行数据储存的,通过SQLite保存数据。
整理安卓记事本开发设计报告
2018年 4月 6日
备注:此表由指导教师填写,表格不够填写可续页。
整理丨尼克
本文档信息来自于网络,如您发现内容不准确或不完善,欢迎您联系我修正;如您发现内容涉嫌侵权,请与我们联系,我们将按照相关法律规定及时处理。
√
开题报告
是否按要求填写开题报告
√
格式检查(签字、盖章、日期)
√
文献综述
封面指导教师有无写评语并签字
√
字数是否达到要求(3000字左右)
√
总参考文献不少于10篇
√
文献引用有无在原文中标注
√
格式、字体是否符合要求
√
近五年文献不少于6篇
√
存在问题及整改意见:
针对上面表格项目的问题以及实际存在的其他问题提出整改意见,注意问题阐述与×的对应关系。
毕业设计(论文)中期检查表
年级专业:社会体育指导与管理
学生姓名:某某某
学号:142081101
指导教师:某某某、某某某
毕业设计(论文)题目:闽南理工学院学生接触手机传媒体育信息的调查与分析
检查项目
检查内容
合格√
不合格×
备注
毕业设计(论文)进展情况
是否按进度完成
√
完成质量
×
任务书
基于android个人记账本的设计与开发开题报告
太原科技大学华科学院毕业设计开题报告学生姓名:学号:学院、系:专业:论文题目:基于android个人记账本的设计与开发指导教师:2015 年 2 月26日毕业设计开题报告1.结合毕业设计情况,根据所查阅的文献资料,撰写2000字左右的文献综述:文献综述一.选题的目的和意义1.选题的背景出门口诀“伸手要赏钱”分别代表着身份证、手机、钥匙、伞、钱。
在后PC时代的今天,手机成为最重要的移动终端,是我们出门出行的必携物。
以前,或许我们的手机只能为我们提供基本通信功能,而随着Android 系统的诞生,我们的生活迎来了一场不亚于“工业革命”带给我们的巨大变化。
基于Anddroid系统的手机处理各类信息的能力得到了质的提升。
而Android这个开源的操作系统,将享受这项优质服务的权利给了所有愿意使用它的人。
Android从08年9月的1.1版到去年11月的4.4版,一路走来,从基本走向优化,全方面地为我们提供了出色的网络、多媒体、通讯、娱乐等功能。
这匹黑马,从诞生伊始到去年7月的“全球市场占有率达81.9%”,告诉我们它的出现是多么受人们欢迎。
它备受追捧的原因不外乎它完全的对第三方软件开发商和我们这些开发者的开发。
我们可以在它上面实现无限自主的“自定义”。
它宛如一张白纸,我们可以在上面随意画出自己想要的东西。
它,贵在给我们自由。
2.选题的意义随着高速经济化,我们的生活节奏越来越快。
我们忙东忙西,总会容易忽略忘记了一些生活细节,比如收支管理。
为了更好的释放一些时间来享受我们的生活,我们期待有这么一款软件来帮助管理这些小数据。
建立在Android操作系统上的个人理财系统,方便我们随时随地地记录着这些零散的数据,从此我们不必再为收支费心,清心地查看数据统计结果是我们唯一要做的事。
二、可行性分析1.可行性研究前提1.1要求系统功能满足用户实际需求可便利地进行收入支出的增删改操作对用户数据进行正确的统计系统操作人性化、简单易用保证软件的安全性1.2目标方便地进行收入、支出等数据进行管理整合2.技术可行性研究此系统需要在Android手机操作系统上运行,用Eclipse进行开发,数据库选用轻量级的SqLite。
Android记事本开发
成绩:通信工程专业实训报告项目名称:Android记事本开发学号: ***********名:**班级: 08通信2班指导教师:***摘要 (3)第一章引言 (3)1.1 实训背景: (3)1.2开发环境配置 (3)第二章软件功能规划 (4)2.1.软件功能 (4)2.2界面设计 (4)第三章功能开发流程及功能展示 (4)3.1程序执行流程 (4)3.2功能实现 (7)第四章实训总结 (9)摘要开心或是难过,有趣或是无聊,幸福或是痛苦,这些都是我们所经历的,是记忆,是生命中最为宝贵的,我们舍不得遗忘,记事本能够帮助我们守住回忆,记录下我们生命的足迹。
第一章引言1.1 实训背景:Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。
早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续进行对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。
底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。
2011年初数据显示,仅正式上市两年的操作系统Android 已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。
开放性:在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。
显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。
开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。
开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。
挣脱运营商的束缚:在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。
Adroid记事本开发报告
科信学院智能移动终端应用开发设计报告(2011/2012学年第2学期)题目:基于Android的记事本设计专业:电子信息工程小组成员:张国锋090072228凌晨090072103秦轲090072126设计成绩:2012年6月15日●项目概述1.课题研究的目的熟悉一下eclipse工具和安卓的环境配置及开发的过程熟练掌握java的组件如button,textview,listView,menu等组件的灵活应用熟练掌握安卓的一个关于数据保存的方式content providers。
锻炼一下自己遇到问题,然后解决问题的能力。
2.项目功能设计实现“添加新记事”,”编辑内容”这两个主要的功能模块●小组成员分工说明张国锋:“记事本”数据库功能的编写凌晨:“记事本”编辑功能的编写秦轲:“记事本”主activity的设计●技术文档1.记事本逻辑设计1.首先是添加新记事:如果当前没有记事,点击“menu”后只有一个菜单选项“添加新记事”,写完记事之后,点击“确定“进行保存.2.编辑内容:选中要编辑的那一个记事,然后点击“menu”菜单,会出现三个选项“新建记事”,“编辑内容”, 点击“编辑内容”对被选中的记事进行编辑,然后点击“确定”加以保存。
2.记事本存储实现Android 中一共提供了5种数据存储方式,但是由于存储的这些数据都是其应用程序私有的,所以如果需要在其他应用程序中使用这些数据.就要使用android提供的ContentProviders.查询数据:可以使用ContentProvider.query()或者Activity.managedQuery()方法修改数据:通过ContentResolver.update()方法可以用来修改数据添加数据:通过ContentResolver.insert()方法来增加一条数据3.程序开发1.主activity的设计当选择“新建记事本”,”编辑内容”等菜单选项时对应的操作package info.liuqy.adc.easynote;import info.liuqy.adc.easynote.R;import android.app.ListActivity;import android.content.Intent;import android.database.Cursor;import android.os.Bundle;import android.view.ContextMenu;import android.view.ContextMenu.ContextMenuInfo;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.ListView;import android.widget.SimpleCursorAdapter;public class EasyNoteActivity extends ListActivity {private static final int ACTIVITY_CREATE = 0;private static final int ACTIVITY_EDIT = 1;private static final int INSERT_ID = Menu.FIRST;private static final int DELETE_ID = Menu.FIRST + 1;private NotesDbAdapter db = null;private Cursor cur = null;// private int counter = 1;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.notes_list);db = new NotesDbAdapter(this);db.open();listAllNotes();this.registerForContextMenu(getListView());}private void listAllNotes() {cur = db.retrieveAllNotes();startManagingCursor(cur);String[] from = new String[]{NotesDbAdapter.KEY_TITLE};int[] to = new int[]{R.id.textrow};SimpleCursorAdapter notes =new SimpleCursorAdapter(this, yout.notes_row, cur, from, to);this.setListAdapter(notes);}/* (non-Javadoc)* @see android.app.Activity#onCreateOptionsMenu(android.view.Menu)*/@Overridepublic boolean onCreateOptionsMenu(Menu menu) {super.onCreateOptionsMenu(menu);menu.add(0, INSERT_ID, 0, R.string.create_note);return true;}/* (non-Javadoc)* @see android.app.Activity#onMenuItemSelected(int, android.view.MenuItem) */@Overridepublic boolean onMenuItemSelected(int featureId, MenuItem item) { switch (item.getItemId()) {case INSERT_ID:createNote();return true;}return super.onMenuItemSelected(featureId, item);}private void createNote() {Intent i = new Intent(this, NoteEditActivity.class);startActivityForResult(i, ACTIVITY_CREATE);}/* (non-Javadoc)* @see android.app.Activity#onContextItemSelected(android.view.MenuItem)@Overridepublic boolean onContextItemSelected(MenuItem item) {switch (item.getItemId()) {case DELETE_ID:AdapterContextMenuInfo info =(AdapterContextMenuInfo)item.getMenuInfo();db.deleteNote(info.id);listAllNotes();return true;}return super.onContextItemSelected(item);}/* (non-Javadoc)* @see android.app.Activity#onCreateContextMenu(android.view.ContextMenu, android.view.View, android.view.ContextMenu.ContextMenuInfo)*/@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {super.onCreateContextMenu(menu, v, menuInfo);menu.add(0, DELETE_ID, 0, R.string.delete_note);}/* (non-Javadoc)* @see android.app.ListActivity#onListItemClick(android.widget.ListView, android.view.View, int, long)*/@Overrideprotected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id);Intent i = new Intent(this, NoteEditActivity.class);cur.moveToPosition(position);i.putExtra(NotesDbAdapter.KEY_TITLE,cur.getString(cur.getColumnIndexOrThrow(NotesDbAdapter.KEY_TITLE)));i.putExtra(NotesDbAdapter.KEY_BODY,cur.getString(cur.getColumnIndexOrThrow(NotesDbAdapter.KEY_BODY)));i.putExtra(NotesDbAdapter.KEY_ROWID, id);startActivityForResult(i, ACTIVITY_EDIT);}/* (non-Javadoc)* @see android.app.Activity#onActivityResult(int, int,android.content.Intent)*/@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);Bundle extras = data.getExtras();switch (requestCode) {case ACTIVITY_EDIT:Long rowId = extras.getLong(NotesDbAdapter.KEY_ROWID);if (rowId != null) {String title = extras.getString(NotesDbAdapter.KEY_TITLE);String body = extras.getString(NotesDbAdapter.KEY_BODY);db.updateNote(rowId, title, body);}break;case ACTIVITY_CREATE:String title = extras.getString(NotesDbAdapter.KEY_TITLE);String body = extras.getString(NotesDbAdapter.KEY_BODY);db.createNote(title, body);break;}}}2.编辑内容package info.liuqy.adc.easynote;import info.liuqy.adc.easynote.R;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;public class NoteEditActivity extends Activity {private EditText titleEdit;private EditText bodyEdit;private Button confirmBtn;private Long rowId;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.note_edit);titleEdit = (EditText) findViewById(R.id.title);bodyEdit = (EditText) findViewById(R.id.body);confirmBtn = (Button) findViewById(R.id.confirm);rowId = null;Bundle extras = getIntent().getExtras();if (extras != null) {String title = extras.getString(NotesDbAdapter.KEY_TITLE);String body = extras.getString(NotesDbAdapter.KEY_BODY);rowId = extras.getLong(NotesDbAdapter.KEY_ROWID);if (title != null)titleEdit.setText(title);if (body != null)bodyEdit.setText(body);}confirmBtn.setOnClickListener(new View.OnClickListener() {public void onClick(View view) {Bundle bundle = new Bundle();bundle.putString(NotesDbAdapter.KEY_TITLE,titleEdit.getText().toString());bundle.putString(NotesDbAdapter.KEY_BODY, bodyEdit.getText().toString());if (rowId != null) {bundle.putLong(NotesDbAdapter.KEY_ROWID, rowId);}Intent iRes = new Intent();iRes.putExtras(bundle);setResult(RESULT_OK, iRes);finish();}});}}3.数据库package info.liuqy.adc.easynote;import android.content.ContentV alues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class NotesDbAdapter {private static final String DB_NAME = "data";private static final int DB_VERSION = 2;private static final String TBL_NAME = "notes";static final String KEY_TITLE = "title";static final String KEY_BODY = "body";static final String KEY_ROWID = "_id";private Context ctx = null;private SQLiteOpenHelper dbHelper = null;private SQLiteDatabase db = null;public NotesDbAdapter(Context ctx) {this.ctx = ctx;}public NotesDbAdapter open() {dbHelper = new SQLiteOpenHelper(ctx, DB_NAME, null, DB_VERSION) {@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("create table notes (_id integer primary key autoincrement, " +"title text not null, body text not null)");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldV er, int newV er) {//TODO on DB upgrade}};db = dbHelper.getWritableDatabase();return this;}public void close() {dbHelper.close();}public long createNote(String title, String body) {ContentValues values = new ContentValues();values.put(KEY_TITLE, title);values.put(KEY_BODY, body);long rowId = db.insert(TBL_NAME, null, values);return rowId;}public Cursor retrieveNote(long rowId) {Cursor cur = db.query(true, TBL_NAME, new String[]{KEY_ROWID, KEY_TITLE, KEY_BODY},KEY_ROWID + "=" + rowId, null, null, null, null, null);if (cur != null) {cur.moveToFirst();}return cur;public Cursor retrieveAllNotes() {Cursor cur = db.query(TBL_NAME, new String[]{KEY_ROWID, KEY_TITLE, KEY_BODY},null, null, null, null, null);return cur;}public boolean updateNote(long rowId, String title, String body) {ContentValues values = new ContentValues();values.put(KEY_TITLE, title);values.put(KEY_BODY, body);int updatedRows = db.update(TBL_NAME, values, KEY_ROWID + "=" + rowId, null);return updatedRows > 0;}public boolean deleteNote(long rowId) {int deletedRows = db.delete(TBL_NAME, KEY_ROWID + "=" + rowId, null);return deletedRows > 0;}}4. 以下为生成的效果图开发工作总结经过学习,研究和开发,我们终于按时完成了这个项目。
基于android studio日记本的设计报告
基于android studio日记本的设计报告一、设计目标本设计报告旨在介绍基于Android Studio的日记本应用的设计方案。
日记本应用旨在为用户提供一个简单、方便、安全的平台,用于记录、保存和管理个人的日记。
二、二、功能要求1. 用户注册和登录:用户需要注册一个账号并登录才能使用日记本应用。
2. 编写和保存日记:用户可以根据自己的需求编写和保存日记。
日记支持文本、图片、音频和视频等多种形式。
3. 查看和编辑日记:用户可以查看已保存的日记,并对其进行编辑和更新。
4. 日记分类:用户可以为日记添加分类标签,以便更好地组织和管理自己的日记。
5. 日记搜索:用户可以根据关键词搜索自己的日记,以便快速找到特定的日记。
6. 日记备份和恢复:用户可以将日记进行备份,以防止数据丢失或设备损坏。
备份文件可以通过应用内或外部存储设备进行恢复。
7. 日记分享:用户可以选择将日记分享到其他社交媒体平台,如微信、QQ等。
8. 用户设置:用户可以在设置中修改自己的个人信息,如用户名、密码等。
9. 安全性保护:用户的个人信息和日记内容需要进行加密存储,以保护用户隐私和数据安全。
1.三、系统设计1. 用户注册和登录:用户注册需要输入用户名、密码和邮箱,并验证邮箱。
登录需要输入用户名和密码进行身份验证。
2. 日记编辑和保存:用户可以在编辑界面进行日记的编写和保存,可以选择不同的多媒体形式进行内容展示。
3. 日记查看和编辑:用户可以进入日记列表界面查看已保存的日记,点击进入日记详情界面可以对其进行编辑和更新。
4. 日记分类:用户可以在日记编辑界面选择分类标签进行日记分类。
5. 日记搜索:用户可以在日记列表界面使用搜索框输入关键词进行搜索。
6. 日记备份和恢复:用户可以在设置界面进行日记的备份和恢复操作,备份文件可以存储在应用内或外部存储设备中。
7. 日记分享:用户可以在日记详情界面选择分享按钮,将日记分享到其他社交媒体平台。
基于android的记事本开发
南京晓庄学院【智能终端移动开发技术课程考察报告】《基于android的记事本设计》所在院(系): 信息工程学院学号:学生姓名:年级专业:****:**这里的图片和视屏都是保存在sd卡里面的。
在数据库中只是其存放路径,起名字是获取当前拍摄的时间。
3.2.4、在主界面中可以查看之前存储的文字、图片、视频点击你想要查看的记录即可。
3.2.5、删除和修改当用户点击想查看的记录,会跳入这条记录中这是用户可以修改这条记录中的内容,也可通过底部的删除按钮删除按钮3.3 、主要的模块结构图1、Java事件结构图,图1java事件结构图AddContent.java用来选择增加内容,为文字或者图片或视频。
有对应的布局文件MainActivity.java主活动调用数据,和增加监听事件。
MyAdapter.java主要是获取缩略图。
NotesDB.java主要是写创建数据库SelectAct.java主要详情页,有对应的布局文件,select.xml图2、布局文件结构图图2布局文件结构图Activity_main.xml主界面布局图Addcontent.xml对应的增加内容布局文件Cell.xml显示存储的界面布局Select.xml添加或修改图片视频布局。
4、主要代码分析4.4.1、首先创建了数据库。
NotesDB.java中扩张于SQLiteOpenHelper构建onCreate方法,在onUpgrade方法中更新数据库。
onCreate方法中用db.execSQL创建。
我们当前并不需要更新所以不用。
CREATE TABLE " + TABLE_NAME(表名)ID+ " INTEGER PRIMARY KEY AUTOINCREMENT,"(ID主键自增。
)CONTENT+ " TEXT NOT NULL,"(内容,内容不能为空。
)PATH + " TEXT NOT NULL,"(图片,图片不能为空。
安卓记事本开发设计报告
题目:基于Android手机平台的记事本设计系名计算机科学与技术专业网络工程学号学生姓名指导教师2011年12月26日目录第一章引言. (1)1.1 课题研究的目的 (1)1.2 课题研究的意义 (1)1.3 课题的可行性分析 (2)第二章开发环境的安装和配置 (3)2.1开发包及其工具的介绍 (3)2.2 Android开发平台的搭建步骤 (3)第三章程序的设计 (4)3.1记事本组件的设计 (4)3.2记事本逻辑设计 (4)3.3 记事本存储实现 (4)第四章程序的开发 (14)4.1主activity的设计 (14)4.2 编译内容 (15)4.3 删除记事 (16)第五章程序的测试 (17)第六章总结 (21)参考文献 (22)第一章引言1.1课题研究的目的1.熟悉一下eclipse工具和安卓的环境配置及开发的过程2.熟练掌握java的组件如button,textview,listView,menu等组件的灵活应用3.熟练掌握安卓的一个关于数据保存的方式content providers。
4.锻炼一下自己遇到问题,然后解决问题的能力。
1.2 课题研究的意义随着3G技术的成熟和智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一.在google和android手机联盟的共同推动下,android在众多移动应用开发平台中脱颖而出.Android操作系统是google最具杀伤力的武器之一.苹果以其天才的创新,是的iphone在全球迅速拥有了数百万忠实的”粉丝”,而android作为第一个完整,开放,免费的手机平台,使开发者在为其开发程序时拥有更大的自由.与windows mobile ,symbian等厂商不同的是,android操作系统是免费向开发人员提供,这样可节省近三层得成本.我们都知道,无论是产品还是技术,商业应用都是它最大的发展动力.android如此受到厂商与开发者的青睐,它的前景是一片光明的.国内对于安卓这方面的市场还没有完全开发出来.只要我们努力学习android,对理想,对生活都会有很大的补益.因此,开发这样一套很简单的记事本软件对我们来讲是一件很有必要的事情,在下面的各章中我们将以开发安卓记事本软件为例,谈谈其开发过程和所涉及到的问题及解决方法。
基于android的日记本开发
西南科技大学课程设计报告课程名称:软件设计基础设计名称:基于android的日记本开发姓名:学号:班级:通信1003班指导教师:起止日期: 11.28——12.12 西南科技大学信息工程学院制方向设计任务书学生班级:通信1003班学生姓名:学号:设计名称:基于android的日记本开发起止日期:11.28——12.12 指导教师:方向设计学生日志基于android的日记本开发一、摘要(150-250字)伴随着无线移动设备的迅速发展,手机的日益普及成为主流,在这一关键时期,Android 系统的推出使手机发展进入了一个新的领域。
世界上一些知名移动设备生产厂商对于Android 智能机的开发热情日益提高,Android系统的使用人群正在急速提升,Android应用程序的多样化使人们从手机中获得更多乐趣,方便着人们的生活,使Android得到了社会越来越多的认同。
本次设计主要描述了基于android开发一个简易日记本的技术方法。
关键字:Android; DbAdapter;Activity;diary二、设计目的和意义在中国,手机已经成为人们日常生活必不可少的一部分,智能手机在高校人群中逐渐得到了普及,Android手机凭借其优秀的系统性能以及良好的用户体验迅速得到了高校师生的青睐。
在高校中,上课并不像高中时期有固定的教室和固定的时间,高校课程种类繁多,并且上课地点和时间不固定,一周内极少会出现重复课程,所以要将课程表完整的记忆下来是一项很艰难的事情,很多同学不得不随身携带一张课表来防止遗忘上课,但是还是不能完全避免该问题的发生,同时,作为一个当今高速发展的时代的成员,适应这个社会是必不能少的,在各种社交场合中,记住一些必须的信息很重要,而它们往往又繁琐又多,不易人为记住。
基于这些问题,有必要设计一款方便小巧的简易日记本程序,可以让用户自定义文件,记住上课时间和地点,从而避免遗忘上课的事情出现,同时记住那些琐碎却有意义的小信息。
基于android studio简易记账本课设报告
基于android studio简易记账本课设报告课设报告:简易记账本 Android 应用程序一、概述在这次课程设计中,我们小组开发了一款基于 Android 系统的简易记账本应用程序。
该应用程序可以帮助用户方便地记录和管理日常的收支情况,具有界面简洁、操作便捷的特点。
二、需求分析1. 功能需求(1)用户可以添加新的收支记录;(2)用户可以查看和编辑已有的收支记录;(3)用户可以删除不需要的收支记录;(4)用户可以按日期或分类对收支记录进行排序和筛选;(5)应用程序应提供用户账户管理功能,如修改密码、注销账号等。
2. 性能需求(1)应用程序应具有良好的稳定性和可靠性;(2)应用程序应具有较高的数据存储和读取效率。
3. 界面需求(1)界面设计简洁明了,易于使用;(2)颜色搭配和图标设计应符合 Android 系统的规范。
三、系统设计1. 数据库设计我们使用SQLite 数据库来存储用户的收支记录。
数据库中包含以下几个表:用户表、分类表、收支记录表。
用户表用于存储用户信息,分类表用于存储收支分类,收支记录表用于存储实际的收支记录,并关联用户和分类信息。
2. 界面设计我们设计了五个主要的界面:登录界面、主界面、添加收支记录界面、查看收支记录界面和账户管理界面。
登录界面用于用户登录,主界面显示用户的收支概览,添加收支记录界面允许用户添加新的收支记录,查看收支记录界面可以查看和编辑已有的收支记录,账户管理界面提供用户账户管理功能。
3. 功能实现我们使用了 Android Studio 开发环境,通过 Java 语言实现应用程序的功能。
主要使用了 Android 的基本控件如 Button、TextView 等,以及SQLite 数据库操作类来处理数据库的增删改查操作。
同时,使用了 Intent 来实现不同界面之间的跳转。
对于数据持久化,我们使用了SharedPreferences 来存储用户的登录状态和偏好设置。
Android记事本开发实例详解
这个ac<action android:name="android.intent.action.VIEW" /><action android:name="android.intent.action.EDIT" /><action android:name="com.android.notepad.action.EDIT_NOTE" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="vnd.android.cursor.item/vnd.google.note" /></intent-filter><!-- This filter says that we can create a new note inside of a directory of notes. --><intent-filter><action android:name="android.intent.action.INSERT" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /></intent-filter></activity>上面第一个intent-filter中有一个action 名为android.intent.action.EDIT,而前面我们创建的Intent也正好是Intent.ACTION_EDIT=” android.intent.action.EDIT”,想必大家已经明白是怎么回事了吧。
android开发记事本实验报告,记事本实验报告(含源代码运行结果).doc
android开发记事本实验报告,记事本实验报告(含源代码运⾏结果).doc记事本实验报告(含源代码运⾏结果)嘉应学院计算机学院实验报告系/班别: 计算机学院 1203班指导⽼师: 肖**课程名称: Java语⾔程序设计实验内容: ⽤Java编写记事本学⽣学号:学⽣姓名: 曾朝阳实验地点: 锡科403实验类型: 设计实验时间: 第⼗四周⾄第⼗七周实验要求:能够通过使⽤JDK1.6安装开发windows 桌⾯应⽤程序。
实验⽬的:熟悉事件触发和事件监听以及组件和容器的界⾯安排,能够⽤java设计⼀个仿windows的标准型记事本。
实验过程描述:实验环境:⽹络实验室实验设备:PC机, ⽹络实验平台:winxp. JDK1.6过程描述:1.⾸先,安装JDK1.62.打开开始-》运⾏->输⼊cmd进⼊dos->cd 路径(原程序的路径)->javac NotepadTest.java(编绎)->java NotepadTest运⾏编写程序:import java.io.File;import .URLClassLoader;import .URL;import ng.InterruptedException;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.PrintStream;import java.util.Scanner;import java.util.Date;import java.util.Iterator;import java.util.List;import java.text.SimpleDateFormat; import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.ImageIcon;import javax.swing.JScrollPane;import javax.swing.JToolBar;import javax.swing.JMenuItem;import javax.swing.KeyStroke;import javax.swing.JPopupMenu;import javax.swing.JFileChooser;import javax.swing.JOptionPane;import javax.swing.JFileChooser;import javax.swing.JColorChooser; import javax.swing.JDialog;import javax.swing.JTextField;import javax.swing.BorderFactory;import javax.swing.JList;import javax.swing.JComboBox;import javax.swing.UIManager;import javax.swing.JRadioButton;import javax.swing.JToggleButton;import javax.swing.ButtonGroup;import javax.swing.TransferHandler;import javax.swing.border.Border; import javax.swing.border.TitledBorder; import javax.swing.text.Document; import javax.swing.undo.UndoManager; import javax.swing.undo.UndoableEdit; import。
基于安卓的云记事本APP设计与开发-毕业论文
---文档均为word文档,下载后可直接编辑使用亦可打印---前言 (1)1.1 研究背景及其意义 (2)1.2 国内外研究现状 (3)1.2.1 Android 的历史: (3)1.2.2安卓记事本的发展历史: (3)1.3 本文的主要工作 (4)1.4 本文的组织结构 (5)第二章开发工具与关键技术简介 (6)2.1 开发工具的介绍 (6)2.2 Android开发平台的搭建 (6)2.3 软硬件配置 (7)2.4云存储技术 (7)2.4.1云存储技术简介 (7)2.4.2云存储技术的优点 (7)2.4.3云存储技术的组成 (7)2.5 Android的系统框架 (8)2.6工程框架 (9)2.7本章小结 (10)第三章云记事本的总体设计方案 (11)3.1云记事本的需求分析 (11)3.1.1云记事本总体所要实现的核心需求 (11)3.1.2云记事本的功能需求 (12)3.1.3用户触发事件 (12)3.2云记事本的总体功能设计 (13)3.2.1系统框架设计 (13)3.2.2系统总模块的设计 (14)3.3Android客户端与服务器端的通信协议设计 (15)(1)客户端与服务器端建立TCP通信。
(15)(2)客户端向服务器端发送请求发送的命令。
(15)(3)客户端发送请求头消息。
(15)(4)服务器对客户端发送的头消息做出应答。
(15)(5)服务器发送应答头消息。
(15)(6)服务器端开始向客户端发送数据。
(15)(7)服务器端关闭TCP连接。
(15)3.4 Android客户端与服务器端之间的数据加密算法 (16)3.4.1 AES堆成加密算法简介 (16)3.5本章小节 (17)第四章云记事本程序的设计 (18)4.1 客户端程序的设计 (18)4.1.1软件登录的设计 (18)4.1.2云记事本文本创建的设计 (20)4.2服务器端程序的实现 (27)4.3本章小节 (28)第五章结束语 (29)参考文献 (30)摘要随着社会的快速发展和人们生活水平的日渐提高,Android手机已经进入到家家户户。
基于安卓记事本实训报告
一、实训背景随着智能手机的普及,移动应用市场日益繁荣,越来越多的用户倾向于在手机上处理日常事务。
记事本作为一款实用性极高的应用,在人们生活中扮演着重要角色。
为了提高自身编程能力,掌握Android开发技术,我们小组开展了基于安卓平台的记事本实训项目。
二、实训目标1. 掌握Android开发环境搭建,熟悉Android开发工具;2. 学习Android编程语言,了解Android应用开发流程;3. 设计并实现一个具有基本功能的记事本应用;4. 优化应用性能,提高用户体验。
三、实训内容1. 系统需求分析(1)功能需求①记事本功能:用户可以创建、编辑、删除、查询记事;②分类管理:用户可以创建、编辑、删除、查询分类;③提醒功能:用户可以为记事设置提醒,并在规定时间收到提醒;④搜索功能:用户可以按照关键字、分类等条件搜索记事;⑤备份与恢复:用户可以将记事本数据备份到本地或云存储,并在需要时恢复。
(2)性能需求①响应速度:记事本操作流畅,无卡顿现象;②内存占用:应用占用内存合理,不影响手机其他应用运行;③兼容性:应用兼容主流Android设备。
2. 系统设计(1)系统架构本系统采用MVC(Model-View-Controller)架构,将应用分为模型、视图和控制器三层。
模型负责数据存储和业务逻辑处理;视图负责展示数据;控制器负责接收用户输入,调用模型和视图进行响应。
(2)系统模块①数据模块:负责与数据库交互,实现数据存储、查询、更新等操作;②视图模块:负责展示数据,包括记事列表、分类列表、详情页面等;③控制器模块:负责接收用户输入,调用模型和视图进行响应。
3. 开发环境(1)开发工具:Android Studio;(2)编程语言:Java;(3)数据库:SQLite。
4. 详细设计及实现(1)数据库设计本系统采用SQLite数据库存储数据,包括记事表(note)和分类表(category)。
记事表字段:- id:主键,自增;- title:记事标题;- content:记事内容;- category_id:分类ID;- create_time:创建时间;- update_time:更新时间。
Android记事本程序开发
Android记事本程序开发《移动智能终端程序设计》课程结业作品Android记事本程序设计说明书班级:信息管理与信息系统姓名:王成科学号:2013404020106荆楚理工学院计算机工程学院目录一、需求分析 (5)二、可行性分析 (5)三、设计目标 (6)3.1、项目功能模块划分 (6)3.2、UI设计 (6)3.3、图形设计 (6)四、系统设计-功能结构设计 (7)4.1、新建笔记 (7)4.2、修改笔记 (8)4.3、删除笔记 (8)五、数据库设计 (8)5.1、笔记表-notes (8)5.2、多媒体信息表-media (9)六、架构设计 (9)七、代码开发及工作分配 (9)7.1、主页面/笔记列表显示页面的布局代码: (9)7.2、编辑笔记页面的布局代码: (10)7.3、显示多媒体列表的条目布局: (11)7.4、显示笔记列表的条目布局: (12)7.5、主页面/笔记列表显示页面的java代码 (12)7.6、编辑笔记页面的java代码: (15)7.7、显示图片的页面: (22)7.8、显示视频的页面: (23)7.9、操作数据库的类: (24)7.10、manifest文件代码: (25)八、测试 (26)8.1、测试功能和操作方式: (26)8.2、测试结果 (27)参考文献 (28)一、需求分析一个记事本,能够输入标题和内容,创建日期、最新修改日期等信息。
如果没有输入标题则使用内容的第一句话作为标题,创建日期和修改日期均由系统自动生成,无需用户干预。
提供笔记列表,列表中笔记展示位标题、创建日期/修改日期高级的可以给笔记添加照片或视频,这既可以自己拍摄也可以添加手机中已有的视频。
二、可行性分析技术可行,安卓记事本在技术上已经非常成熟,所以在这方面有很多地方可以参考别人的。
经济可行,安卓记事本开发成本低,使用效率高,同事这个作品是作为练习使用,提高自己开发能力。
技术方面主要用到Java,SQLite,listview、Intent等知识点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Android平台记事本的设计与实现1.设计目的记事本的基本功能就是记事,手机用户首先用到的就是文本记事,输入事务信息以文本的形式展现出来,存储起来。
随着用户需求的增加,可能希望用图形来代替文本来记事,用户之间打开记事本,看到图片就能联系自己所记载的事务信息。
这样免去了输入文字的麻烦,反而会更简单。
又或者是文本与图片的交叉运用,可以让用户自己选择自己喜欢的记事方式,更加自由与便捷。
所以此功能的意义是让简单的记事信息能以文本、图文和视频表达,更加丰富多彩。
2.设计内容本设计的基本内容是在Android平台下,设计与实现记事本软件。
具体要实现的功能是:(1)设计实现添加“文字”,“图文”,“视频”这三个主要的功能模块。
(2)进入添加后,有“保存”,“取消”两种选择。
(3)主页面显示记事列表,点击可查看及时内容,并有“删除”,“返回”两种选择。
(4)进行测试并分析结果。
3.开发环境的安装与配置3.1 Android开发平台搭建本设计主要是以Eclipse为基础,安装SDK和ADT插件后,用来开发安卓项目。
开发平台搭建步骤介绍如下。
(1)下载JDK并安装,安装后配置环境变量。
(2)下载Eclipse解压至指定文件夹。
(3)下载SDK后解压至指定文件夹,打开SDK目录,点击SDK Manager安装开发安卓项目需要的包。
(4)启动Eclipse,进入Help—>Install New Software—>Add,添加ADT插件。
(5)进入Window—>Android—>Browse,选择SDK安装目录。
3.2硬件环境Android设备,如Android手机或平板电脑,主频在1Ghz及以上,内存为512MB以上,系统版本为Android2.1及以上。
本设计使用Android4.4.4的手机。
3.3 软件环境操作系统:windows10IDE:EclipseAndroid SDK 集成环境4.设计主体架构4.1 src文件夹src文件夹下com.liwenhuan.notepad包下为系统主要Activity类:NotesDB.java是进行数据储存的,通过SQLite保存数据。
并且用onCreate函数创建数据库。
通过设置两个按钮的监听来实现对输入文本的存储或退出。
MainActivity.java是主Activity,通过设置三个按钮的监听来实现添加文本、图文、视频的记事方式。
AddContent.java通过initView方法来判断记事的方式,实现对文本、图片、视频的添加,获取保存文件的时间。
MyAdapter.java是显示模块,通过系统提供的Bitmap在记事列表显示图片和视频的缩略图。
SelectAct.java是记事详情的显示模块,通过监听的方法来实现记事的删除功能。
4.2 gen文件夹gen文件夹是项目自动生成的文件夹R.java是工程下各个资源的标识符负责所有资源的索引。
4.3 bin文件夹bin文件夹是编译后的字节码存放的目录,编译的过程首先是编译成为android java虚拟机文件classes.dex,再打包成APK格式的包。
4.4 res文件夹Res是资源目录,它包含项目中的资源文件并将其编译进应用程序中,向此目录添加资源时,会被R.java自动记录。
res目录存放所有程序中用到的资源文件。
“资源文件”指的资料文件、图片等。
子目录有:drawable、layout、values。
本设计主要用了layout目录下的布局文件。
layout是屏幕布局目录, activity_main.xml是主界面的布局文件、addcontent.xml是增加数据页面的布局文件、cell.xml是几个功能按钮的布局文件、select.xml是显示记事详情以及对记事进行操作的布局文件。
5.程序设计5.1数据存储之SQLite这个方法在数据保存中非常常用,只是它只会被一个程序读取数据,不能在不同程序间共享数据。
//创建数据库public void onCreate(SQLiteDatabase db) {db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + ID+ " INTEGER PRIMARY KEY AUTOINCREMENT," + CONTENT+ " TEXT NOT NULL," + PATH + " TEXT NOT NULL,"+ VIDEO+ " TEXT NOT NULL," + TIME + " TEXT NOTNULL)");}5.2 添加文字内容当以文本方式记事时,需要对输入的文字内容进行保存。
public void initView() {if (val.equals("1")) { // 文字c_img.setVisibility(View.GONE);//隐藏v_video.setVisibility(View.GONE);//隐藏}}public void onClick(View v) {switch (v.getId()) {case R.id.save:addDB();//添加数据finish();//关闭当前Activitybreak;case R.id.delete:finish();break;}}5.3适配器配置public class MyAdapter extends BaseAdapter {private Context context;private Cursor cursor;private LinearLayout layout;//视图对象public MyAdapter(Context context, Cursor cursor) {this.context = context;this.cursor = cursor;}@Overridepublic int getCount() {return cursor.getCount();//返回长度}@Overridepublic Object getItem(int position) {return cursor.getPosition();}@Overridepublic long getItemId(int position) {return position;}public View getView(int position, View convertView, ViewGroup parent) {LayoutInflater inflater = LayoutInflater.from(context);//加载视图的权限layout = (LinearLayout) inflater.inflate(yout.cell,null);//布局文件TextView contenttv = (TextView)layout.findViewById(R.id.list_content);//获取上面布局文件中的每一个内容TextView timetv = (TextView)layout.findViewById(R.id.list_time);//查找时间ImageView imgiv = (ImageView)layout.findViewById(R.id.list_img);//查找图片ImageView videoiv = (ImageView)layout.findViewById(R.id.list_video);//查找视频cursor.moveToPosition(position);//查询String content =cursor.getString(cursor.getColumnIndex("content"));//获取具体内容String time =cursor.getString(cursor.getColumnIndex("time"));//获取时间String url =cursor.getString(cursor.getColumnIndex("path"));//获取图片的缩略图String urlvideo =cursor.getString(cursor.getColumnIndex("video"));//获取视频contenttv.setText(content);//将内容传递进来timetv.setText(time);//将时间传递进来videoiv.setImageBitmap(getVideoThumbnail(urlvideo, 200, 200,MediaStore.Images.Thumbnails.MICRO_KIND));//在列表显示视频缩略图imgiv.setImageBitmap(getImageThumbnail(url, 200, 200));//在列表显示图片缩略图return layout;}5.4添加图片和视频在本设计中,不仅提供了以文本方式进行记事,还提供了以图片和视频方式进行记事。
public void initView() {if (val.equals("2")) {//图片c_img.setVisibility(View.VISIBLE);//显示v_video.setVisibility(View.GONE);//隐藏Intent iimg = newIntent(MediaStore.ACTION_IMAGE_CAPTURE);//跳转到系统相机phoneFile = newFile(Environment.getExternalStorageDirectory().getAbsoluteFile() + "/" + getTime() +".jpg");//获取SD卡绝对路径iimg.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(phoneFile));//存储获取的图片信息startActivityForResult(iimg, 1);//启动跳转}if (val.equals("3")) {c_img.setVisibility(View.GONE);//隐藏v_video.setVisibility(View.VISIBLE);//显示Intent video = newIntent(MediaStore.ACTION_VIDEO_CAPTURE);//跳转到手机系统信息videoFile = newFile(Environment.getExternalStorageDirectory().getAbsoluteFile() + "/" + getTime() +".mp4");//获取SD卡绝对路径video.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(videoFile));//存储获取的video信息startActivityForResult(video, 2);//启动跳转}}//显示图片或视频protected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data);if (requestCode == 1) {//图片Bitmap bitmap = BitmapFactory.decodeFile(phoneFile.getAbsolutePath());//获取路径c_img.setImageBitmap(bitmap);//展示内容}if (requestCode == 2) {//视频v_video.setVideoURI(Uri.fromFile(videoFile));//加载视频v_video.start();//播放视频}}5.5 获取图片和视频的缩略图当我们用图片或制品进行记事时,在列表中需要显示其缩略图,可以用系统提供的Bitmap进行处理。