当前位置:文档之家› 安卓记事本开发报告

安卓记事本开发报告

安卓记事本开发报告
安卓记事本开发报告

基于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 软件环境

操作系统:windows10

IDE:Eclipse

Android 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 NOT

NULL)");

}

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();//关闭当前Activity

break;

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;

}

@Override

public int getCount() {

return cursor.getCount();//返回长度

}

@Override

public Object getItem(int position) {

return cursor.getPosition();

}

@Override

public long getItemId(int position) {

return position;

}

public View getView(int position, View convertView, ViewGroup parent) {

LayoutInflater inflater = LayoutInflater.from(context);//加载视图的权限

layout = (LinearLayout) inflater.inflate(https://www.doczj.com/doc/585867855.html,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 = new

Intent(MediaStore.ACTION_IMAGE_CAPTURE);//跳转到系统相机

phoneFile = new

File(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 = new

Intent(MediaStore.ACTION_VIDEO_CAPTURE);//跳转到手机系统信息

videoFile = new

File(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 stub

super.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进行处理。

//获取图片的缩略图

public Bitmap getImageThumbnail(String uri, int width, int height) { Bitmap bitmap = null;

BitmapFactory.Options options = new

BitmapFactory.Options();

options.inJustDecodeBounds = true;

bitmap = BitmapFactory.decodeFile(uri, options);

options.inJustDecodeBounds = false;

int beWidth = options.outWidth / width;

int beHeight = options.outHeight / height;

int be = 1;

if (beWidth < beHeight) {

be = beWidth;

} else {

be = beHeight;

}

if (be <= 0) {

be = 1;

}

options.inSampleSize = be;

bitmap = BitmapFactory.decodeFile(uri, options);

bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,

ThumbnailUtils.OPTIONS_RECYCLE_INPUT);

return bitmap;

}

//获取视频的缩略图

private Bitmap getVideoThumbnail(String uri, int width, int height, int kind) {

Bitmap bitmap = null;

bitmap = ThumbnailUtils.createVideoThumbnail(uri, kind);

bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,

ThumbnailUtils.OPTIONS_RECYCLE_INPUT);

return bitmap;

}

5.7详情页显示

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/585867855.html,yout.select);//加载详情

// System.out.println(getIntent().getIntExtra(NotesDB.ID, 0));

s_delete = (Button) findViewById(R.id.s_delete);

s_back = (Button) findViewById(R.id.s_back);

s_img = (ImageView) findViewById(R.id.s_img);

s_video = (VideoView) findViewById(R.id.s_video);

s_tv = (TextView) findViewById(R.id.s_tv);

notesDB = new NotesDB(this);

dbWriter = notesDB.getWritableDatabase();//获取写权限

s_back.setOnClickListener(this);

s_delete.setOnClickListener(this);

//如果图片为空,则隐藏,否则显示

if

(getIntent().getStringExtra(NotesDB.PATH).equals("null")) {

s_img.setVisibility(View.GONE);

} else {

s_img.setVisibility(View.VISIBLE);

}

if

(getIntent().getStringExtra(NotesDB.VIDEO).equals("null")) {

s_video.setVisibility(View.GONE);

} else {

s_video.setVisibility(View.VISIBLE);

}

s_tv.setText(getIntent().getStringExtra(NotesDB.CONTENT));//加载TextView的文字信息

Bitmap bitmap =

BitmapFactory.decodeFile(getIntent().getStringExtra(

NotesDB.PATH));//加载图片信息

s_img.setImageBitmap(bitmap);//显示图片信息

s_video.setVideoURI(Uri

.parse(getIntent().getStringExtra(NotesDB.VIDEO)));

s_video.start();//播放视频

}

6.测试

6.1虚拟设备AVD测试

(1)主界面显示如图6.1所示。

(2)记事页面显示如图6.2所示。

图6.1 图6.2

(3)记事列表显示如图6.3所示。

(4)记事详情显示如图6.4所示。

图6.3 图6.4

6.2 真机测试

将记事本的apk文件导进手机,安装后进行测试,测试结果如下:(1)添加好内容后,记事本的记事列表显示如图6.5所示。

(2)以文本方式添加记事,详情显示如图6.6所示。

图6.5 图6.6

(3)以图文方式添加记事,内容详情页显示如图6.7。

(4)以视频结合文字方式添加记事,内容详情页显示如图6.8。

图6.7

图6.8 7.总结

通过此次设计过程我会到了许多知识,在这个过程中遇到了许多困难,比如SDK 和ADT 的版本不能兼容,记事本项目可以在虚拟设备中运行,在真机上测试时却出现了问题,不能读取图片和视频,通过在网上查找资料,发现是虽然在代码中对SD 卡添加了读取权限,但没有在AndroidMainfest.xml 中添加对手机SD 卡的读取权限,所以出现了如上的错误。通过不断的发现问题,总结问题和解决问题的过程,使我对Android 的认识不断的提高,得到了宝贵的经验。

代码:

MainActivity.java

package com.liwenhuan.notepad;

//采用接口方式

public class MainActivity extends Activity implements OnClickListener { private Button textbtn, imgbtn, videobtn;//声明三个button

private ListView lv; //创建listview

private Intent i;//通过intent来创建标识

private MyAdapter adapter;

private NotesDB notesDB;//数据库对象

private SQLiteDatabase dbReader;//获取读取权限

private Cursor cursor;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/585867855.html,yout.activity_main);

initView();//调用初始化方法

}

//初始化

public void initView() {

lv = (ListView) findViewById(R.id.list);//找id操作

textbtn = (Button) findViewById(R.id.text);//找文字

imgbtn = (Button) findViewById(R.id.img);//找图片

videobtn = (Button) findViewById(R.id.video);//找视频

textbtn.setOnClickListener(this); //添加监听事件

imgbtn.setOnClickListener(this);

videobtn.setOnClickListener(this);

notesDB = new NotesDB(this);//数据库实例化

dbReader = notesDB.getReadableDatabase();//获取读取权限

//获取记事详情

lv.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView parent, View view,

int position, long id) {

cursor.moveToPosition(position);

Intent i = new Intent(MainActivity.this, SelectAct.class);

i.putExtra(NotesDB.ID,

cursor.getInt(cursor.getColumnIndex(NotesDB.ID)));//获取ID

i.putExtra(NotesDB.CONTENT, cursor.getString(cursor

.getColumnIndex(NotesDB.CONTENT)));//获取内容

i.putExtra(NotesDB.TIME,

cursor.getString(cursor.getColumnIndex(NotesDB.TIME)));//获取时间

i.putExtra(NotesDB.PATH,

cursor.getString(cursor.getColumnIndex(NotesDB.PATH)));//获取图片

i.putExtra(NotesDB.VIDEO,

cursor.getString(cursor.getColumnIndex(NotesDB.VIDEO)));//获取视频

startActivity(i);//跳转到详情页

}

});

}

//添加一个复写方法

@Override

public void onClick(View v) {

i = new Intent(this, AddContent.class);//实例化操作

switch (v.getId()) {

case R.id.text:

i.putExtra("flag", "1");

startActivity(i);//跳转至AddContent.java

break;

case R.id.img:

i.putExtra("flag", "2");

startActivity(i);

break;

case R.id.video:

i.putExtra("flag", "3");

startActivity(i);

break;

}

}

public void selectDB() {

cursor = dbReader.query(NotesDB.TABLE_NAME, null, null, null, null,

null, null);

adapter = new MyAdapter(this, cursor);

lv.setAdapter(adapter);

}

@Override

protected void onResume() {

super.onResume();

selectDB();

}

}

NotesDB.java

package com.liwenhuan.notepad;

public class NotesDB extends SQLiteOpenHelper {

public static final String TABLE_NAME = "notes";//指定名称

public static final String CONTENT = "content";//内容

public static final String PATH = "path";//图片

public static final String VIDEO = "video";//视频

public static final String ID = "_id";//创建id

public static final String TIME = "time";//当前保存文本的时间

//复写一个构造方法

public NotesDB(Context context) {

super(context, "notes", null, 1);//super返回值(context,库名,null,版本号)}

@Override

//创建数据库

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 NOT NULL)");

}

@Override

//更新数据库,当前需求,不需要更新

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

AddContent.java

package com.liwenhuan.notepad;

public class AddContent extends Activity implements OnClickListener {

private String val;//用于接收MainActivity中的跳转的定义

private Button savebtn, deletebtn;

private EditText ettext;

private ImageView c_img;

private VideoView v_video;//用来播放视频

private NotesDB notesDB;//创建数据库对象

private SQLiteDatabase dbWriter;

private File phoneFile, videoFile;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/585867855.html,yout.addcontent);//绑定视图

val = getIntent().getStringExtra("flag");//接收完成

savebtn = (Button) findViewById(R.id.save);//寻找id

deletebtn = (Button) findViewById(R.id.delete);

ettext = (EditText) findViewById(R.id.ettext);

c_img = (ImageView) findViewById(R.id.c_img);

v_video = (VideoView) findViewById(R.id.c_video);

savebtn.setOnClickListener(this);//监听事件

deletebtn.setOnClickListener(this);

notesDB = new NotesDB(this);//实例化

dbWriter = notesDB.getWritableDatabase();

initView();

}

//判断是否显示

public void initView() {

if (val.equals("1")) { // 文字

c_img.setVisibility(View.GONE);//隐藏

v_video.setVisibility(View.GONE);//隐藏}

if (val.equals("2")) {//图片

c_img.setVisibility(View.VISIBLE);//显示

v_video.setVisibility(View.GONE);//隐藏

Intent iimg = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//跳转到系统相机

phoneFile = new File(Environment.getExternalStorageDirectory()

.getAbsoluteFile() + "/" + getTime() + ".jpg");//获取SD 卡绝对路径,照片储存在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 = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);//跳转到手机系统信息

videoFile = new File(Environment.getExternalStorageDirectory()

.getAbsoluteFile() + "/" + getTime() + ".mp4");//获取SD卡绝对路径

video.putExtra(MediaStore.EXTRA_OUTPUT,

Uri.fromFile(videoFile));//存储获取的video信息

startActivityForResult(video, 2);//启动跳转

}

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.save:

addDB();//添加数据

finish();//关闭当前Activity

break;

case R.id.delete:

finish();

break;

}

}

//添加数据

public void addDB() {

ContentValues cv = new ContentValues();//实例化

cv.put(NotesDB.CONTENT, ettext.getText().toString());//添加内容(在输入框中获取到的)

cv.put(NotesDB.TIME, getTime());//调用方法获取时间并添加

cv.put(NotesDB.PATH, phoneFile + "");//将获取的图片信息插入数据库中

cv.put(NotesDB.VIDEO, videoFile + "");//将获取的vedio信息插入数据库中

dbWriter.insert(NotesDB.TABLE_NAME, null, cv);//将上面添加的数据插入数据库中

}

//获取保存文件时的时间

private String getTime() {

SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");

Date curDate = new Date();

String str = format.format(curDate);//按指定的格式获取时间

return str;

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

// TODO Auto-generated method stub

super.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();//播放视频

}

}

}

MyAdapter.java

package com.liwenhuan.notepad;

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;

}

@Override

public int getCount() {

return cursor.getCount();//返回长度

}

@Override

public Object getItem(int position) {

return cursor.getPosition();

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

public View getView(int position, View convertView, ViewGroup parent) {

LayoutInflater inflater = LayoutInflater.from(context);//加载试图的权限

layout = (LinearLayout) inflater.inflate(https://www.doczj.com/doc/585867855.html,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;

}

//获取图片的缩略图

public Bitmap getImageThumbnail(String uri, int width, int height) { Bitmap bitmap = null;

BitmapFactory.Options options = new BitmapFactory.Options();

options.inJustDecodeBounds = true;

bitmap = BitmapFactory.decodeFile(uri, options);

options.inJustDecodeBounds = false;

int beWidth = options.outWidth / width;

int beHeight = options.outHeight / height;

int be = 1;

if (beWidth < beHeight) {

be = beWidth;

} else {

be = beHeight;

}

if (be <= 0) {

be = 1;

}

options.inSampleSize = be;

bitmap = BitmapFactory.decodeFile(uri, options);

bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,

ThumbnailUtils.OPTIONS_RECYCLE_INPUT);

return bitmap;

}

//获取视频的缩略图

private Bitmap getVideoThumbnail(String uri, int width, int height, int kind) { Bitmap bitmap = null;

bitmap = ThumbnailUtils.createVideoThumbnail(uri, kind);

bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,

ThumbnailUtils.OPTIONS_RECYCLE_INPUT);

return bitmap;

}

}

SelectAct.java

package com.liwenhuan.notepad;

public class SelectAct extends Activity implements OnClickListener {

private Button s_delete, s_back;

private ImageView s_img;

private VideoView s_video;

private TextView s_tv;

private NotesDB notesDB;

private SQLiteDatabase dbWriter;//获取写权限

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/585867855.html,yout.select);//加载详情

s_delete = (Button) findViewById(R.id.s_delete);

s_back = (Button) findViewById(R.id.s_back);

s_img = (ImageView) findViewById(R.id.s_img);

s_video = (VideoView) findViewById(R.id.s_video);

s_tv = (TextView) findViewById(R.id.s_tv);

notesDB = new NotesDB(this);

dbWriter = notesDB.getWritableDatabase();//获取写权限

s_back.setOnClickListener(this);

s_delete.setOnClickListener(this);

//如果图片为空,则隐藏,否则显示

if (getIntent().getStringExtra(NotesDB.PATH).equals("null")) {

随心记事本需求分析

随心记事本需求分析

文档信息 标题: 随心记事本需求分析报告作者: 赵敏 创建日期: 2014-6-23 上次更新日期:2014-3-30 部门名称: 手机应用软件研发部

目录 1. 项目概述 (3) 1.1选题背景及意义 (4) 1.2国内外发展情况 (5) 1.3主要研究内容 (5) 2. 软件总体概述 (7) 3. 项目业务介绍 (8) 4. 业务及信息化现状分析 (8) 7.1 业务现状 (8) 4.2功能设计 (9) 4.3 界面设计 (9) 5.概要设计 (9) 5.1概要设计 (10) 6.开发环境 (10) 6.1硬件环境 (10) 6.2软件环境 (10) 7.系统性能需求分析 (12) 7.1 数据负荷需求 (12) 7.2 适应性需求 (12) 8 系统功能需求分析 (13) 8.1 系统功能的划分 (13) 结束语 (13)

1.项目概述 随着信息化建设的发展,网络的不断完善,电子信息的进步,电子文字输入在生活、学习、工作中占有越来越重要的作用。这种崭新的文字记录的模式也是现代信息社会发展的一大趋势,因此,电子信息记录方式也逐渐成为业内人士关注的焦点。 现在网络上各种记事本数不胜数,较为出名的有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色,这些软件文字存储能量大;有的功能齐全,使用者广泛。但是,这些软件较为完善的记事软件大多存在与电脑使用,而对于手机系统所使用的记事本功能单一,且存储的安全性低、存储的种类也大多仅限文字和图片。仅从日常应用方面来说,一个文本编辑器只有一个简单实用的功能是远远不能满足人们的需求。本程序设计就是依照这样一种使用需求而设计了的一个简单记事本程序。 1.1选题背景及意义 随着计算机行业的发展,智能手机在人们的生活中普及开来。智能手机拥有的独立操作系统使得手机能像个人电脑一样支持用户自定义安装软件等程序,并通过此类操作对手机功能进行扩充,从而在更大程度上满足用户的需求,这是智能手机的优势,也是智能手机赢得市场的主要原因。具有开放性的Android手机平台,从2007年

Android系统精简列表对照表

安卓系统精简列表对照表,适用于大部分Android系统,大家请参考对照精简。AirkanPhoneService 可删 AntiSpam 可删 AdupsFot.apk无线升级(可删) AdupsFotaReboot.apk重启升级操作(可删) ApplicationGuide.apk-应用程度指南(不可删)ApplicationsProvider.apk-应用程序存储服务(不可删) AtciService.apk--系统服务(不可删) Backup.apk 可删 BackupRestoreConfirmation.apkGoogle邮箱的备份,可删BasicDreams.apk 4.2新增,休眠模式,不可删 BatteryWarning.apk--电池警告(建议保留) Browser.apk-谷歌浏览器(可删) BugReport 可删 Calculator.apk---计算器(可删) Calendar.apk日历(可删,换第三方日历) CalendarImporter.apk日历服务(同上) CalendarProvider.apk-日历存储(同上) CDS_INFO.apk--常见数据服务(不可删) CellBroadcastReceiver.apk小区广播(可删) CellConnService.apk---电话连接服务(不可删) CertInstaller.apk-证书安装,可删(亲测,没发现问题)

Cit可删 CloudService可删 ChromeBookmarksSyncAdapter.apk-Google书签同步(可删) com.google.android.apps.docs.apk--云端硬盘(可删) com.google.android.apps.maps.apk-谷歌地图(可删) com.google.android.googlequicksearchbox.apk-Google搜索(可删) com.google.android.street.apk--街景视图(可删) Contacts.apk--通讯录/联系人(不可删) ContactsProvider.apk--通讯录/联系人数据存储服务(不可删)DataHubProvider.apk. 会导致流量红圈不可删 DataTransfer.apk-备份与恢复(可删) DataUsageLockScreenClient.apk数据应用和锁定屏幕客户端(不可删)DefaultContainerService.apk-默认存储服务(不可删) DeskClock.apk闹钟,时钟(建议保留) DownloadProvider.apk 下载管理器,可删(删了就不能在谷歌电子市场和谷歌浏览器下载东西了,需要的留着) DownloadProviderUi.apk 下载内容,可删(同上) DrmProvider.apk 受DRM保护的内容的存储,可删(有DRM保护的东西就留着这个)Email.apk-电子邮件(可删) EngineerMode.apk--工程模式(不可删) EngineerModeSim.apksim卡工程模式(不可删) EventReceiver 翻译过来就是事件接收还是别删了这个网上没查到多少资料

安卓系统程序可删除列表

大家在删除的时候,最好是用钛备份先冻结程序 红色表示,不可删除,蓝色表示建议保留 程序名称程序中文名称功能说明及删除建议删除建议 AccountAndSyncSettings.apk 帐号同步设置可删除用于同步联系人,删除后设置帐户同步报错,谷歌帐户同步不可用. 不用谷歌同步服务的可删除 ADWLauncher.apk ADW桌面ADW桌面程序,用第三方桌面可删除可删除用第三方桌面Androidian.apk 主题文件暂时还不知道是干什么用的可删除 AndroidTerm.apk 终端模拟器刷RECOVERY用,其它高级功能一般用不到可删除建议刷完RECOVERY后再删除,或者要刷的时候再装 ApplicationsProvider.apk 应用程序支持服务保留 Bluetooth.apk 蓝牙可删除用第三方软件替代 Browser.apk 谷歌浏览器可删除用第三方软件替代 Calculator.apk 计算器可删除 Calendar.apk 日历可删除 CalendarProvider.apk 日历储存删除后,日历有问题可删除 Camera.apk 相机可删除 CertInstaller.apk 证书安装位置和安全中从SD卡安装证书可删除 ChsPack.apk touchpal输入法拼音语言包(可删) ChtPack.apk touchpal输入法注音语言包(从来不用注音的删)CMParts.apk CM设置保留 CMWallpapers.apk CM自带壁纸可删除,和动态壁纸选择器一起删除后设置壁纸时默认进入图库可删除 Contacts.apk 联系人可删除 ContactsProvider.apk 联系人存储保留 Cyanbread.apk 主题文件可删除 DefaultContainerService.apk 默认通讯录服务可删除 DeskClock.apk 闹钟可删除 Development.apk 开发可删除 DownloadProvider.apk 下载管理器 DownloadProviderUi.apk 电子市场下载用户界面谷歌电子市场下载部件可删除不用电子市场的可删 DownloadProvider.apk 电子市场下载服务谷歌电子市场下载部件可删除DrmProvider.apk 受保护数据存储服务数据版权保护可删除 DSPManager.apk DSP均衡器不知道怎么用可删除 Email.apk 电子邮件可删除 Facebook.apk Facebook(用不到的删) FileManager.apk OI文件管理器可删除 FM.apk 收音机可删除 Gallery3D.apk 3d图库图片阅览,比较慢. 可删除 GenieWidget.apk 天气与新闻(我自己不用他看新闻,删了) GoMarket.apk 安智市场可删除 GoogleBackupTransport.apk 谷歌备份(可删)GoogleCalendarSyncAdapter.apk 谷歌日历同步适配器(可删)

Andriod手机日程管理系统的设计与实现

Andriod手机日程管理系统的设计与实现随着人们生活水平的提高,计算机网络技术和APP应用程序的不断进步让人们在生活中享有了更多的舒适,在应用程序的实用性、操作性和舒适性都有了更高的要求,而移动终端软件也有了不同程度的完善,以期望能满足不同人群的使用要求。Android手机日程管理系统并不罕见,常见的日历就是最基础的日程管理系统,不过从用户的使用要求和满意程度上来说并不理想,尽管有日程记录和管理的功能,但是缺少了对用户日程合理规划的功能,导致了尽管用户有的日程管理这一功能实现,可是对用户工作效率的提高没有起到帮助,仅仅是起到了一个记事本的功能,尤其是在如今,人们对自身的时间把握越来越精确,需要在有限的时间内完成所有的事情,因此新一代的手机日程管理系统研发工作必须提上日程,才能满足人们对于时间合理规划的要求,也能丰富日程管理系统的功能,使其更为全面的满足人们的需求。本论文基于Android系统实现,保证了该软件的便携性与实用性。本文所设计的日程管理软件,不仅包含了传统日程管理软件所具有的管理日程功能,并在这个基础上与时间管理四象限法则相结合,对用户的日程进行分析,并向用户提出科学的建议,以帮助用户在这个快节奏的社会中提高生活工作效率。 系统包含八个模块的内容:日程管理功能、类型管理功能、感想管理功能、备份功能、恢复功能、关于功能、分析功能、设置功能。本次研究的手机系统在投入使用后,取得了非常高的实用效益,通过弥补现在市面上大多数日程管理软件没有为用户提出合理建议的弊端,给大多数的手机系统使用者提供了更为合理的日程安排,让手机系统的使用者能够更为科学高效地安排自己的生活,一些平时具有手机依赖症的用户,通过该系统的使用改掉了自身的不良习惯,大部分的手机用户通过该系统的使用生活安排更加高效合理,养成了制定计划的习惯。本论文所设计的日程管理软件,不仅包含了传统日程管理软件所具有的管理日程功能,并在这个基础上与时间管理四象限法则相结合,对用户的日程进行分析,并向用户提出科学的建议,以帮助用户在这个快节奏的社会中提高生活工作效率。

基于Android平台的家校通管理系统的开发与实践

基于Android平台的家校通管理系统的开发与实践 随着智能信息时代的来临,智能手机已经成为人们必不可少的便携工具。为了满足学校、教师、家长的三方需求,特开发基于Android平台的家校通管理系统应用程序,植入手机,方便家长与教师随时随地沟通。本文本着实用、合理、先进、安全的原则设计系统,介绍系统功能模块组成,系统数据库设计与组成。 1.系统的设计原则 (1)实用性:实用性是对管理系统最根本的要求,本系统能解决家长与校方沟通的难题。操作界面友好,下载安装简单,应用方便。 (2)合理性:本系统采用合理的系统设计方案,功能设计合理,能够完全实现家长与教师的需要。 (3)先进性:系统平台采用目前较先进的开发技术,尽量保证系统开发后在很长一段时间内技术不落后,功能完善,使用方便。 (4)可扩展性:系统平台要留有升级空间。随着时间的推移,技术的更新,系统的运行平台版本不断升级,系统测试不能完全排除系统中存在的bug,在用户长时间的使用过程中,可能会发现系统中存在的许多bug。因此,系统要能够保证随时升级更新,修改存在bug。 (5)可维护性和可管理性:采用先进的程序设计模式,使程序模块结构合理,程序代码共享性好,可维护性好,并有一套可靠的管理機制,使管理员方便管理后台数据。 (6)安全性:安全性是软件开发中最重要的原则。系统应该以保证数据的安全性为前提,对数据进行授权访问;并保证不能因为硬件故障而影响软件的正常工作。 我院计算机应用技术专业着力于课程改革多年,打破传统的、单一课程体系模式,构建了集“理论课程体系、实践课程体系、实训课程体系”三大类课程为内容的多元课程体系,根据每种课程特点以及前后关联性,将相关的理论课、实践课、实训课划分到一个课程群组中,并合理安排在学生在校学习的两年内。 2.系统的组成 家校通管理系统由两个子系统组成:教师登陆系统、家长登陆系统。每个子系统由八个功能模块组成:备忘录、学生成绩、班级课表、班级通知、值日安排、考试安排、联系家长、签到情况。 2.1“备忘录”功能

基于android平台的记事本研究与开发 开题报告

武汉理工大学本科学生毕业设计 (论文)开题报告 1、目的及意义(含国内外的研究现状分析) 这次课题的目的是在Android系统的手机开发平台之上,研究与开发一个记事本软件,提供适用手机的记事本功能服务,其中包括以下几个功能: (1)文本、图形记事支持;(2)语音记事支持;(3)内容检索与管理; (4)以邮件或短信方式发送信息。 首先,记事本的基本功能就是记事,手机用户首先用到的就是文本记事,输入事务信息以文本的形式展现出来,存储起来。随着用户需求的增加,可能希望用图形来代替文本来记事,用户之间打开记事本,看到图片就能联系自己所记载的事务信息。这样免去了输入文字的麻烦,反而会更简单。又或者是文本与图片的交叉运用,可以让用户自己选择自己喜欢的记事方式,更加自由与便捷。所以此功能的意义是让简单的记事信息能以文本和图形表达,更加丰富多彩。 其次,在支持传统的文字记事方式下,还要支持语音记事。因为用户需要追求更加简单的记事方式,不需要手动输入文字,而是直接语音记事。语音直接保存,有利于下次用户直接查看时点击按钮就可以播放相应的录音信息了。这对于某些眼睛不太好的,或者说更喜欢听的用户是很有吸引力的。 再次,如果记事本的信息很多,而用户又需要快速找到自己需要的记事信息,这时候内容检索就非常有用了。对于业务繁忙,或者是经常写备忘录记事的群体,这个内容检索功能能带给用户很多的便利。让他们更加高效的利用手机,节约时间,高效工作与生活。 最后,针对商务人士,或者是经常使用邮箱(如Gmail)的用户来说,有时候希望通过查看邮箱的同时查看记事本的信息,一次性获取全部。所以记事本同步邮箱功能能够为用户带来更多的功能与便利。 国内外现状分析: 目前国内外有4款比较火的记事本软件。分别是Evernote,小米便签,NoteEverything,麦库记事。 Evernote 在软件界面方面界面清爽,需注册登录后才可使用,图标布局比较协调;记事笔记方面可编写内容,添加标签,支持上传图片、音频、视频、文件等附件;特色功能方面具有搜索笔记和发送笔记、定位服务、同步等功能;资源占用方面内存占最多,CPU占用适中。 小米便签在软件界面方面界面功能简单,可查看和新建便签,菜单功能相对丰富;记事方面只支持文字内容,可以选择桌面Widget颜色、字体大小等;特色功能方面可以移进文件夹和分享、备份、还原和设置保护密码;资源占用方面内存占用较中,CPU占用最少。 Note Everything界面简洁,上方有新建记事和搜索等按钮,菜单功能非常丰富;支持文本、绘图、语音、图片、清单、图库、视频、条形码等形式,可固定显示记事;特色是单个记事加密,数据备份、还原、导入、到处,创建快捷方式;内存占用最少,CPU占用较中。 麦库记事界面比较精美,菜单功能相对简单;可选分类、加标签、附件,支持拍照和实时录音。特色是笔记搜索和分类,网络同步和笔记分享;内存占用适中,CPU占用最多。

安卓系统可删除的系统软件

安卓系统可删除的系统软件 进system/app 用RE管理器什么设置为读/写 ?程序文件名 com.android.Provider.Applications ApplicationsProvider.apk 日历存储器CalendarProvider.apk删除CertificateInstaller CertInstaller.apk 通讯录Contacts.apk 189邮箱CP_189Mail.apk删除 账户与同步设置CP_AccountAndSyncSettings.apk 归属地CP_Adscription.apk删除 防盗CP_Againstguard.apk删除 闹钟CP_AlarmClock.apk删除 预制应用安装CP_App3rd2sd.apk 号码百事通CP_BestTone.apk删除 蓝牙CP_Bluetooth.apk 蓝牙设置CP_BluetoothSetting.apk 互联网CP_BrowserUI.apk删除 计算器CP_Calculator.apk删除

日历CP_CalendarUI.apk删除 通话记录CP_CallRecord.apk 相机CP_Camera.apk删除 联系人存储CP_ContactsProvider.apk 通讯录CP_ContactsUI.apk 情景模式CP_ContextMode.apk GPS导航CP_CoolMap.apk删除 Coolmart CP_CoolMart.apk删除 com.yulng.Android.Cooperation CP_Cooperation.apk 拨号盘CP_Dial.apk 下载管理CP_DownloadProvider.apk Coolbook CP_Ebook.apk删除 爱游戏CP_egame.apk删除 电子邮件CP_Email.apk删除 工程模式CP_EngMode.apk 天翼空间CP_eStore.apk删除 工厂模式CP_FactoryPattern.apk 文件管理CP_FileBrowser.apk CP_3RD_Stock_info_jrj.apk 图库CP_Gallery3D.apk GPS info CP_GPSJavaTest.apk 酷派输入法CP_IME.apk删除

五款记事本替代软件

五款记事本替代软件 记事本是Windows操作系统中自带的文本编辑器,由于其小巧简单,被人们大量频繁使用。但由于其过于简陋,很多我们需求的功能它不能够完成,就有了记事本替代软件。与我前面文章能改变你使用习惯的十大免费软件中提到的ConTEXT类似,不过,ConTEXT有点占用CPU资源。记事本的不足之处主要表现在以下几个方面: ◆不支持多文档界面。如果你用记事本打开了一个文本文件,你想再建一个新文件,它要求你必须选退出当前的文本编辑状态。 ◆不显示代码行号。这对于程序员调试代码是极其不方便的。 ◆不支持语法高亮。高亮语法能够让你发现代码中存在的一些问题。 ◆不支持大文件。如果你尝试打开超过64KB的文件,系统会提示你:“文件太大,记事本无法打开,要用写字板读取文件吗”,如果你强行打开,它就会停止响应,将界面锁死。 正因为有以上原因,我们使用一些软件来替代系统自带的记事本。 ★Notepad++ Notepad++是一个免费的源代码编辑器,它支持多种编程语言。特点包括语法高亮,代码折叠,自动纠错,多文件标签,自由拖放,全面定制搜索持等,也包括先进的宏记录和回放功能。很大一部分人用它来替代记事本。 ★Programmer's Notepad Programmer's Notepad是免费、开源文本编辑器,特别适合程序员。主要功能包括书签、代码高亮/折叠、没有文件大小限制、分页文件标签,项目管理功能等。 ★pspad

pspad 也是一个免费代码编辑器。提供主要特征如富文本格式、强大的代码编辑功能、项目管理、语法高亮,自动校正、十六进制编辑、文字差异、拼写检查,宏记录、内置FTP工具等。 ★notepad2 Notepad2 是一个轻量级的、免费开源记事本替代工具。notepad2是一种全功能记事本编辑功能,如语法高亮等。它的核心基于Scintilla代码,类似于Notepad++。它的功能还包括自由拖放,表达式搜索等。 notepad2是比较适合个人来使用。 ★metapad metapad是一种体积小,速度快,完全免费的文本编辑器。它的设计思想就是完全替代记事本,因此它包含了记事本的所有特点,同时提供几种额外功能。如:包括工具栏的功能,所见即所得打印等,它的内存占用也比系统自带的记事本少。窗口还有透明效果。如果你想用简单、高效的记事本,可以尝试一下metapad 。

基于Android的简单记事本

摘要:本文主要阐述了基于Android的简单记事本的设计与实现,较为系统的介绍了用户通过点击add按钮编辑事件、通过save按钮添加事件,以及在主界面查看事件列表、单击列表查看单个事件的详细内容,和通过长按列表弹出对话框,选择修改事件、删除事件等。本文主要介绍的是运用eclipse软件进行Android应用的设计,如使用Activity类、运用Intent 技术实现页面的跳转、通过数据存储实现标题、时间、内容的保存以及取出查看的功能。通过以上技术使应用中的各项操作简便易懂并且有明确的提示,让用户可以更清晰快捷地掌握该记事本的使用,为用户节省了时间,为用户提供了便利,随时随地都能记录生活。 关键词:Android、记事本、Intent、Activity

目录 绪论.......................................................... 错误!未定义书签。 1 需求分析和概要设计 (3) 1.1需求分析 (3) 1.2整体要求 (3) 1.3开发工具和环境 (3) 2 系统设计 (4) 2.1系统设计架构 (4) 2.2界面概述 (4) 2.3模块概述 (5) 3 系统详细设计 (6) 3.1N OTEPAD A CTIVITY类 (6) 3.1.1 add按钮监听 (6) 3.1.2 ListView监听 (6) 3.1.3 initListView方法() (7) 3.2E DIT T EXT A CTIVITY类.......................................... 错误!未定义书签。 3.2,.1 SAVE按钮监听......................................... 错误!未定义书签。 3.3C HECK L IST A CTIVITY类 ........................................ 错误!未定义书签。 3.4D ATABASE H ELPER类........................................... 错误!未定义书签。 3.5D ATABASE M ANAGER类 (8) 3.6L IST V IEW A DAPETER类 (18) 4 系统的不足及展望 (9) 4.1不足 (9) 4.1.1 没有特色 (9) 4.1.2 支持的形式太少 (9) 4.2展望 (9) 4.2.1 实现备忘录提醒 (9) 总结 (10)

安卓记事本实习报告

Android记事本的设计与实现 ——SQLite数据库的设计和操作 学生姓名:指导老师: 摘要:随着智能手机的快速普及,智能手机操作系统市场风生水起。Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。 本文主要介绍了一款Android记事本SQLite数据库模块的设计与实现。根据人们日常生活的需要,该记事本的内容包括运用SQLite封装好的方法对数据进行添加、删除、修改、更新和密码进入等功能,并且将查询到的数据传递给activity,具有一定的实用性。关键词:记事本;Android;手势密码;SQLite;Activity

Design and implementation of Android notepad —Design and operation of the SQLite database Student name: Advisor: Abstract With the rapid proliferation of smart phones, smart phone operating system market burgeoned. Android's biggest feature is its open architecture, not only has a very good development, debugging environment, but also supports a variety of scalable user experience, including rich graphical components, multimedia support and powerful browser. This paper describes the design and implementation of an Android notepad SQLite database module. According to the needs of daily life, including the contents of the notepad good way to use SQLite package data to add, delete, modify, update and password to access other functions, and query the data is passed to the activity, has a certain practicality . Keywords Notepad; Android; gesture password; SQLite; Activity

安卓系统编程开发报告

Android编程报告 一安卓系统简介 Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。 2010年末数据显示,仅正式推出两年的操作系统Android已经超越称霸十年的诺基亚(Nokia)Symbian OS系统,采用Android系统主要手机厂商包括宏达电子(HTC)、三星(SAMSUNG)、摩托罗拉(MOTOROLA)、LG、Sony Ericsson等,使之跃居全球最受欢迎的智能手机平台,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。 二初识安卓应用程序 Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection 和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。 View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup 之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。 三Andoroid中介软件 操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。

安卓记事本管理系统(DOC)

Android 系统课程设计 记事本管理系统 专业 计算机科学与技术 学生姓名 周腊风 班级 D 计算机133 学号 1320704327 任课教师 王 翠 香 完成日期 2016年6月24日

目录 1 绪论 (1) 2 需求分析 (1) 2.1功能描述 (1) 2.2 Android记事本的使用意义 (2) 2.3用户触发事件 (2) 3 系统总体设计 (4) 3.1.业务流程图 (4) 3.2数据增加流程图 (5) 3.3数据修改流程图 (5) 3.4数据删除流程图 (6) 3.5用户操作数据流程图 (6) 3.6记事E-R图 (7) 4 程序运行结果及代码 (7) 4.1界面 (8) 4.2添加新记事 (8) 4.4关于 (9) 4.5退出 (10) 4.6删除记事 (10) 4.7编辑/修改标题 (11) 4.8根据标题搜索内容 (11) 5 总结 (12) 6 参考文献 (13)

1 绪论 随着3G技术的成熟和智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一.在google和android手机联盟的共同推动下,android在众多移动应用开发平台中脱颖而出. Android操作系统是google最具杀伤力的武器之一.苹果以其天才的创新,是的iphone在全球迅速拥有了数百万忠实的”粉丝”,而android作为第一个完整,开放,免费的手机平台,使开发者在为其开发程序时拥有更大的自由.与windows mobile ,symbian等厂商不同的是,android操作系统是免费向开发人员提供,这样可节省近三层得成本. 我们都知道,无论是产品还是技术,商业应用都是它最大的发展动力.android如此受到厂商与开发者的青睐,它的前景是一片光明的.国内对于安卓这方面的市场还没有完全开发出来.只要我们努力学习android,对理想,对生活都会有很大的补益. 因此,开发这样一套很简单的记事本软件对我们来讲是一件很有必要的事情,在下面的各章中我们将以开发安卓记事本软件为例,谈谈其开发过程和所涉及到的问题及解决方法。 2 需求分析 2.1功能描述 该记事本软件是一种主要用来记录笔记的基于安卓平台的软件,可以运行在安卓平台模拟器或运行在安卓平台的手持设备上。 阐述整个记事本的系统结构及工作原理: (1)设计实现“添加文本”,“编辑内容/标题”和“删除记事”这三个主要的功能模块。 (2)分析并解决实现中的若干技术问题,像组件的选择以及保存的选择。 (3)进行测试并分析结果。

android记事本管理系统项目计划书

课程设计报告 学院:华信软件学院 专业:软件工程 课程名称: J2ME程序设计 课程代码: 1969166 设计题目:记事本设计 姓名:翟永明 学号: 20114963 所在班级: 5班 指导教师:庄凯 完成时间: 2013.10 -- 2013.12

天津理工大学课程设计评分表 届:11级学院(系):华信软件学院专业:软件工程日期:2013年12月 24日 学生姓名翟永明学号20114963 题目记事本设计 在智能机上的使用时,记事本可以帮助你不忘掉想做的事情,具有较强的生活色彩,它可以短信的方式提醒你想做的事情。 评审项目评审内容得分 1.项目可以按照预期设计正常的运行 10分口运行准确,无错误 10分口运行正常,有部分异常 9-8分口运行基本可以实现 7-6分口不能正常运行 0-5分 2.功能实现合理,设计符合设计要求 20分口功能实现合理,设计符合设计要求有特色有实用价值 20分口功能基本实现合理 ,符合设计要求 19-16分口可以实现60%以上的基本功能,部分功能有欠缺 15-12分口对于基本功能不能很好的实现或完成不足50%的功能 11-0分 3.界面美观大方,操作合理使用 10分口界面美观大方,操作合理使用有应用Ajax的相关的技术 10分口界面美观可以合理应用div+css 基本达到设计标准 9-8分口界面设计不统一有拼凑现象 7-6分口界面设计不能很好的实现只是简单的背景颜色图片 0-5分 4.说明文档完成的准确 ,详细图表内容与功能设计相符 20分口文档详细准确 (功能模块 ER, 顺序图 ,数据字典)与设计相符 20分口文档准确(功能模块 ER, 顺序图 ,数据字典)与设计内容相符 19-16分口文档中有错误但整体设计符合设计预期设想 15-12分口文档和设计项目不符照办他人的文档或存在严重错误 11-0分 5.能够合理的运用所学的专业知识项目设计符合相关的设计规范 20分口运用知识合理可以准确灵活的使用有新技术的使用 20分口运用知识合理可以准确灵活的使用 19-16分口运用知识合理但缺少灵活性没有将全部的知识点应用 15-12分口应用的知识和所学的内容严重不符 11-0分 6.能准确的进行项目的讲解并能合理的回答相应的问题 20分口能准确的进行项目的讲解并能合理的回答相应的问题 20分口能准确的进行项目的讲解与设计内容相符基本能回答相应问题 19-16分口项目讲解有误问题回答不够准确 15-12分口不是自己完成但了解项目流程可以正确的分析项目 11-0分 合计

基于安卓平台的个人记事本管理软件设计本科毕业论文

摘要 随着信息化社会的发展,Android智能产品已日益成为越来越多的人们选择的移动终端产品。伴随着Android智能手机与平板电脑已经在我们生活大量的使用,越来越多的基于Android开发平台的应用也随之出现。 本次毕业设计主要是基于Android平台的android技术,JA V A语言,程序设计环境是eclipse+android SDK。轻量级数据库SQLite数据库+文件存储,主要存放一些字段信息,以及图文路径。功能方面主要在传统记事基础上实现图片记事、存储,语音记事存储,视频记事、存储,还有对各类信息的检索功能,各类信息的发送功能。在本次软件设计中,用到了Android平台提供的Adapter适配器,软件中的诸多功能,都是通过继承适配器来适配页面上所要展示的基本信息。然后就是通过统一页面的色调,整顿整个界面风格。 软件的主要目标就是解决现在的人们对丰富生活的记事需求,在这个前提下,继续美化Android界面。 关键词:Android;记事本;多功能;note I

Designed of manage personal notepad software based android Abstract With the development of information society , Android smart products has become increasingly more and more people choose mobile terminal products. With Android smartphones and tablet computers have a lot of use in our lives , more and more Android -based application development platform also will appear. The graduation project is mainly based on the Android platform android technology , JA V A language and programming environment is eclipse + android SDK. + Lightweight database SQLite database file storage , storage of some of the major fields of information , as well as graphic path. The main achievement of the picture notepad function , storage, voice memo storage, video notes, memos stored in the traditional basis , there are all kinds of information retrieval , sending all kinds of information. In the design of this software , use the Adapter adapter , software Android platform provides many functions are to fit on the page to show the basic information through inheritance adapter. Then the page is through uniform color , straighten the entire interface style. The main goal now is to solve the software needs to enrich the lives of people note , in this context, to continue to beautify the Android interface. Keywords : Android; notebook ; multifunctional ; note II

记事本应用-可行性研究

系统目标和范围说明书 1.项目名称:Android记事本 2.背景:通过调查显示,大部分消费者都会使用手机记事本功能。 随着手机记事本功能的不断加强与完善,手机记事本对于人们的意义,已不仅仅像一般记事簿一样简单记录,而是向着更个性化人性化的方向发展。记事本在生活和工作也日益凸显出它的重要性,它能更好地帮助人们管理自己的工作和生活,极大的方便了人们的生活 3.项目目标:开发一个简单易用功能丰富的记事本应用 4.项目范围: 5.初步设想:可以建立新的文本、图片、视频格式文件,让记事的 方式多样化,同时可以修改、删除、查看已有文件 6.可行性研究;一台装有Eclipse及配置好Android开发环境的计算 机和一部安卓手机即可

“Android记事本应用”可行性研究报告 1.引言 1.1编写目的 编写本报告目的是对Android记事本应用进行可行性分析,以最小的代价在尽可能短的时间内确定问题是否能够解决和是否值得解决,并最终确定本软件开发的可行性。 1.2背景 项目名称:Android记事本应用 项目用户: 开发单位: 1.3参考资料 A《软件产品开发文件编写指南(GB 8567-1987)》 B《实用软件文档写作》,肖刚、古辉、程振波、张元鸣等编著,清华大学出版社 2.项目目标 在五个周内开发完成一个简单易用功能丰富的记事本应用 3.对现有系统分析 目前国内外有2款特别受欢迎的记事本软件。分别是印象笔记(Evernote)和小米便签。 Evernote在软件界面方面布局简洁,但需注册登录后才可使用,图标布局比较协调,记事笔记方面可编写内容,添加标签,支持上传

移动终端软件设计作业报告—记事本

《移动终端软件设计》 作业报告 项目名称:简易记事本 班级:计算机科学与技术3、6班完成人: 任课教师: 2018年 12 月 12 日

1.系统需求分析 1.1 系统功能及框图 实现功能: 新建文字文本、图片文本、视频文本、保存笔记、删除笔记。 1.2 系统需求 (1)新建一个文本文件,在主界面显示文本内容以及文本创建日期,同时实现页面的保存与返回。 (2)调用系统相机拍照后,照片以缩略图形式显示在主界面列表中,同时显示创建日期。 (3)创建数据库保存这些文本文件 1.3 该项目涉及到的技术点 ①SQLite的基本使用,增删查改 (1)创建DatabaseHelper对象,调用execSQL()方法创建数据库表。 (2)创建ContentValues的对象在数据库中插入数据: ContentValues initialValues = new ContentValues(); initialValues.put(key,values); ②listview,adapeter的基本使用 ListView显示数据: (1)得到ListView类型的对象; (2)生成适配器对象。并设置数据; (3)把适配器对象设置为ListView的适配器; (4)设置监听器监听事件的发生。 实现BaseAdapter的四个方法:

public int getCount(): 适配器中数据集的数据个数; public Object getItem(int position): 获取数据集中与索引对应的数据项; public long getItemId(int position): 获取指定行对应的ID; public View getView(int position,View convertView,ViewGroup parent): 获取每一行Item的显示内容。 ③activity生命周期 Activity实例是由系统自动创建,并在不同的状态期间回调相应的方法。一个最简单的完整的Activity生命周期会按照如下顺序回调:onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy。 ④intent、bundle传递参数 (1)首先创建一个Intent和Bundle对象,其中Bundle用于存储传递的数据; (2)然后使用Bundle的putXXX方法输入要传递的数据; (3)将要传递的数据压入Intent中intent.putExtras(Bundle对象); (4)启动“随从Activity” ⑤(1)调用系统相机拍摄照片: 需要用的MediaStore.ACTION_IMAGE_CAPTURE作为Intent的action开启Activity即可。 设置系统现有相机应用的拍摄照片的保存路径,需要用Intent.putExtra()方法通过MediaStore.EXTRA_OUTPUT去设置Intent的额外数据,这里传递的是一个Uri参数,可以是一个文件路径的Uri。 (2)系统现有相机拍摄的图片: 在新开启的Activity中,如果需要获取它的返回值,则需要使用startActivityForResult(Intent,int)方法开启Activity,并重写onActivityResult(int,int,Intent)获取系统相机的返回数据,那么我们只需要在onActivityResult()中获取到返回值即可。 ⑥缩略图 (1)在BitmapFactory.Options中 当inJustDecodeBounds设成true时,bitmap并不加载到内存,可以获得bitmap的高、宽等信息(outweight、outwidth)。 最后用BitmapFactory.decodeFile(path, options)生成图片。 (2)ThumbnailUtils工具类的方法 extractThumbnail(Bitmap source, int width, int height, int options) 创建所需尺寸居中缩放的位图。参数:(source:需要被创造缩略图的源位图对象,width:生成目标的宽度,height:生成目标的高度,options:在缩略图抽取时提供的选项) 常量OPTIONS_RECYCLE_INPUT用于表示应该回收extractThumbnail(Bitmap, int, int, int)输入源图片(第一个参数) ⑦S impleDateFormat 类实现日期和字符串之间的转化

相关主题
文本预览
相关文档 最新文档