计科1141班胡志泉安卓实验6 - 数据存储与访问
实验六 存储器扩展实验

实验六存储器扩展实验
一、实验目的
1、学习片外数据存储器扩展的方法。
2、学习数据存储器的读写方法。
3、熟悉散转程序设计方法。
二、实验设备
1、QTH单片机开发系统。
2、微机。
三、实验原理
1、数据存储器引脚定义;
2、地址分配原理;
四、实验内容:
1、设计片外数据存储器硬件连接图,要求使用数据存储器62256,以及串并转换芯片74LS164,利用并行输出控制两个七段码显示器。
(必做)
2、编程实现利用四个按键的组合模拟0~F 16进制数,要求,采集按键状态存入外部数据存储器6000H单元为首地址的连续单元,并在显示器上显示该十六进制数;可循环采集显示。
(必做)
3、编程实现利用四个按键的组合模拟0~15十进制数,要求,采集按键状态存入外部数据存
储器6000H单元为首地址的连续单元,并在显示器上显示该十进制数;可循环采集显示。
(选做)
五、思考题:
分析线选法和译码法的优缺点;
六、实验报告要求:
1、写清实验目的原理
2、画出电路原理图,给出程序清单,画流程图;
3、在实验总结中,写清实验现象,分析实验现象产生原因、存在问题,给出解决方案。
在调试过程中遇到的问题,如何解决的,注意事项等相关内容。
说明:设计电路图按下图设计
实验连线按实验指导书上连。
计科1141班胡志泉安卓实验6 - 数据存储与访问

GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验6:数据存储与访问课程名称移动编程课程号16242215x0学院(系) 数学与计算机专业计算机科学与技术班级计科1141班学生姓名学号实验地点科技楼425 实验日期2017.4.1一、实验目的1.熟悉在Android Studio开发环境下编写Android应用程序的流程;2.理解在Android Studio开发环境下进行用户界面设计的基本方法;3.掌握应用Android碎片控件Fragment开发适用于大屏幕的应用程序的方法。
4.掌握应用Android存储方法SharePreferences的应用方法。
二、实验内容在Android Studio开发环境下,使用Android的Fragment碎片控件、TextView文本标签控件、ListView列表控件、FrameLayout框架布局控件,利用SharePreferences存储方法,采用双页显示模式实现一个适用于大屏幕设备的简易新闻阅读器应用程序。
三、实验设备Android Studio四、实验结果用户界面布局设计采用了水平线性布局方式,分为左右两个碎片Fragment;其中,左侧为新闻标题列表子界面,右侧为新闻详细内容子界面。
当点击新闻标题列表中的某一标题时,右侧的Fragment将显示相应新闻标题的详细内容。
五、源代码主Activity的布局文件activity_main.xml的源代码<LinearLayout xmlns:android="/apk/res/android" xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent" android:paddingLeft="16dp"android:paddingRight="16dp"android:paddingTop="16dp"android:paddingBottom="16dp"android:orientation="horizontal"><FrameLayoutandroid:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:id="@+id/fl_title"></FrameLayout><FrameLayoutandroid:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="3"android:id="@+id/fl_content"></FrameLayout></LinearLayout>新闻标题列表的布局资源文件news_title_frag.xml的源代码<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><ListViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/news_title_list_view" /></LinearLayout>新闻标题列表子项的布局资源文件news_item.xml的源代码<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/news_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:singleLine="true" //singleLine属性设置为true表示该TextView只能单行显示android:ellipsize="end" //ellipsize属性用于设定当文本内容超出控件宽度时,文本的缩略方式,这里设置为end表示在尾部进行缩略android:paddingLeft="10dp"android:paddingRight="10dp"android:paddingTop="15dp"android:paddingBottom="15dp"android:textSize="10sp" /> //textSize属性用于设置文本大小,推荐单位为sp(放大像素, scaled pixels)</LinearLayout>新闻内容的布局资源文件news_content_frag.xml的源代码<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:id="@+id/news_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:padding="10dp"android:textSize="15sp" /><ImageViewandroid:layout_width="match_parent"android:layout_height="1dp"android:scaleType="fitXY" // scaleType属性设置为fitXY,表示图像将填充满整个控件的大小android:src="@drawable/spilt_line"/><TextViewandroid:id="@+id/news_content"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:padding="15dp"android:textSize="10sp" /></LinearLayout><ImageViewandroid:layout_width="1dp"android:layout_height="match_parent"android:layout_alignParentLeft="true"android:scaleType="fitXY"android:src="@drawable/spilt_line_vertical"/></RelativeLayout>Main_Activity.javapackage com.example.liheng1.mynewsapplication;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.content.Context;import android.content.SharedPreferences;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import java.util.ArrayList;public class MainActivity extends ActionBarActivity {private ArrayList<News> newsArrayList = null;private FragmentManager fManager = null;public MainActivity() {}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);createNewsSPData(); //调用自定函数,若程序首次运行则生成新闻的 SharedPreferences数据文件// 读取新闻SP数据文件中的数据,以此生成新闻数组列表newsArrayListnewsArrayList = new ArrayList<News>();SharedPreferences SP_NewsCount = getSharedPreferences("NewsCount", Context.MODE_PRIVATE);int newsCount = SP_NewsCount.getInt("Count",0);for (int i = 1; i <= newsCount; i++) {String FileName = "News"; // 新闻的文件名前缀SharedPreferences SP_News = getSharedPreferences(FileName + i, Context.MODE_PRIVATE);News news = new News();news.setTitle(SP_News.getString("NewsTitle",null));news.setontent(SP_News.getString("NewsContent", null));newsArrayList.add(news);}fManager = getFragmentManager();NewsTitleFragment ntFragment = new NewsTitleFragment(fManager, newsArrayList);FragmentTransaction ft = fManager.beginTransaction();//显示新闻标题:将显示新闻标题的Fragment替换掉对应位置处的FrameLayout控件ft.replace(R.id.fl_title, ntFragment);mit();}@Overrideprotected void onStop() {super.onStop();createRunRecordSPData(); //调用自定函数,生成程序首次运行记录的 SharedPreferences数据文件}private void createNewsSPData() {String RUN_RECORD = "AppRunRecord"; // 记录 App是否首次运行的SP文件的文件名String FIRST_RUN = "FirstRun"; // 首次运行的标签名String NEWS_COUNT = "NewsCount"; // 记录新闻数量的SP文件的文件名String COUNT = "Count"; // 新闻数量的标签名String FileName = "News"; // 新闻的文件名前缀SharedPreferences SP_RunRecord = getSharedPreferences(RUN_RECORD, Context.MODE_PRIVATE);if(SP_RunRecord.getBoolean(FIRST_RUN,true)){int newsCount = 20;for(int i=1;i<=newsCount;i++) {SharedPreferences SP_News = getSharedPreferences(FileName+i,Context.MODE_PRIVATE);SharedPreferences.Editor editor_News = SP_News.edit();String newsTitle = "新闻标题" + i + ":若能正常显示此标题,则说明程序已经成功一半了";String newsContent = " 这是新闻标题 " + i + " 所对应的新闻内容,内容如下:" +"Fragment很多时候都是在平板应用开发中使用的,主要是为了解决屏幕空间" +"不能充分利用的问题。
数据访问技术实验报告

数据访问技术实验报告实验目的:本实验旨在通过实践操作,加深对数据访问技术的理解,掌握不同数据访问方法的实现原理和应用场景,提高解决实际数据访问问题的能力。
实验环境:- 操作系统:Windows 10- 数据库管理系统:MySQL 8.0- 开发工具:Eclipse IDE 2021-09实验内容:1. SQL查询语句的编写与执行。
2. JDBC(Java Database Connectivity)的使用。
3. ORM(Object-Relational Mapping)框架Hibernate的使用。
实验步骤:1. 准备实验环境,安装并配置好MySQL数据库和Eclipse开发环境。
2. 创建数据库和数据表,为实验提供数据支持。
3. 编写SQL查询语句,实现数据的增删改查操作。
4. 利用JDBC连接数据库,执行SQL语句,并处理结果。
5. 配置Hibernate框架,通过ORM方式进行数据访问。
实验过程:1. 在MySQL中创建名为`ExperimentDB`的数据库,并在其中创建`Students`表,包含字段`id`, `name`, `age`, `major`。
2. 编写SQL语句,插入几条学生记录,并查询所有学生信息。
3. 在Eclipse中创建Java项目,添加MySQL驱动依赖。
4. 编写Java程序,使用JDBC连接到`ExperimentDB`数据库,执行SQL查询语句,并打印查询结果。
5. 配置Hibernate,定义实体类`Student`与`Students`表映射,并使用Hibernate的Session进行数据访问。
实验结果:1. SQL查询语句成功执行,能够正确插入和查询数据。
2. JDBC程序能够连接数据库,执行SQL语句,并正确处理查询结果。
3. Hibernate配置成功,通过ORM方式能够进行数据的增删改查操作。
实验分析:通过本次实验,我们了解到SQL是直接与数据库进行交互的基本语言,适用于简单的数据操作。
《Android应用开发》课件——第5章 数据存储

File SDPath = Environment.getExternalStorageDirectory();
File file = new File(SDPath, "data.txt");获取SD卡目录
String data = "HelloWorld";
FileOutputStream fos = new FileOutputStream(file);
注意:Android系统有一套自己的安全模型,默认情况下任何应用创 建的文件都是私有的,其他程序无法访问。
✎
5.2.1 将数据存入到文件中
内部存储
String fileName = "data.txt";
// 文件名称
String content = "helloworld";
// 保存数据
FileOutputStream fos = openFileOutput(fileName, MODE_PRIVATE);
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
动态申请权限的方法
外部存储 ✓ 存储位置
将数据以文件的形式存储到外部设备上。
✓ 存储位置
mnt/sdcard/目录下。
✓ 其它应用操作该文件时
不用设置权限,会被其它应用共享
✓ 删除文件
该文件可在本应用外删除,使用前需要 确认外部设备是否可用
✓ 删除文件
直接使用FileOutputStream和 FileInputStream操作对象
《操作系统原理》课程实验指导书

}
else { //大于0是父进程
printf("The parent:%d\n", getpid());
x=4;
}
printf("x=%d\n",x);
}
验证操作:
(45)程序运行共输出了几条语句?
(46)x的值输出了几次?
思考:
(47)x为什么会输出不同的值?
16.并发执行
#include <sys/types.h>
相关准备知识
Linux操作系统命令接口。
实验步骤
以图形化方式登录Linux系统,在桌面单击鼠标右键,选新建终端。
8.文件、目录管理。
(29)pwd
功能:显示用户当前所处的目录的绝对路径。
语法:pwd
例如,以root身份登录后,使用命令pwd将显示/root信息。
(30)ls
功能:列出目录的内容,类似于DOS下的dir命令。
(37)rm
功能:删除一个目录中的一个或多个文件或目录。
语法:rm 文件名…
例如,rm /tmp/my.c将删除/tmp目录下的my.c文件。
(38)clear
功能:清除屏幕上的信息,清屏后,提示符移动到屏幕左上角。
9.C程序开发
(39)使用vi编辑C语言源程序
(40)gcc编译和链接
(41)运行程序。
实验对象
本实验开设对象为计算机科学与技术和网络工程专业本科学生,本课程为必修课程。
课程简介
《操作系统原理》是计算机专业的核心课程之一。通过本课程的学习和实验,使学生掌握操作系统基本概念和原理,提高自身计算机的应用素质,并且培养学生熟练使用系统调用编程技能,为他们以后的专业学习奠定良好的基础。
操作系统实验四存储管理实验(1)

操作系统课程实验年级2012 级专业计算机科学与技术(应用型)姓名学号指导教师日期实验四、存储管理实验一、关键问题1、实验目的理解内存分配和回收原理。
2、实验环境Ubuntu 8.0或者以上,Eclipse集成开发环境3、实验内容3.1 在控制台内观察Linux内存分配情况3.2存储管理模拟实验要求:写一动态分区管理程序,使其内存分配采用最佳适应分配算法。
老师所给的例子为内存分配算法是最先适应分配算法的系统模拟动态分区管理方案,而问题的关键就是如何把最先适应分配算法改为最佳适应分配算法。
二、设计修改思路struct freearea* min1=NULL;//定义了一个符合条件的最小空白块链表首先我们在分配内存函数中需要定义一个记录符合条件的最小空白块的链表结构指针,对当前空闲分区链进行遍历,找到符合条件的最小空白块并记录。
系统为作业分配内存时,根据指针freep查找空闲分区链。
当找到一块可以满足请求中最小的空闲分区时便分配。
当空间被分配后剩余的空间大于规定的碎片,则形成一个较小的空闲分区留在空闲链中。
三、实现修改的关键代码//有两个链:空白块链及作业链.空白块链描述空白块,链首指针freep,初始为一大块空白块.//作业链按从高址到低址的顺序链接,链首指针jobp//为作业jn分配jl大小内存,起始地址为javoid ffallocation(int jl,char jn[10],int* ja){struct mat* jp=NULL;//作业链当前节点struct mat* jp2=NULL;//新的作业节点struct mat* jp1=NULL;//struct freearea* fp=NULL;//当前空白块struct freearea* min1=NULL;//定义了一个符合条件的最小空白块链表int flag=0;int i;*ja=-1;if (totalfree<jl) //剩余空间大小不能满足作业要求return;fp=freep;while (fp!=NULL){if (fp->freesize>jl){ min1=fp;flag=1;break;}fp=fp->next;}if(freep->next!=NULL&&flag==0) {*ja=0;return;}fp=min1->next;while (fp!=NULL){if (fp->freesize>jl&&fp->freesize<min1->freesize)min1=fp;fp=fp->next;//当前空白块大小不满足要求}jobnumber++;totalfree=totalfree-jl;jp2=calloc(1,sizeof(struct mat));//在节点上登记为该作业分配的内存空间// for (i=0;i<10;i++) (jp2->jobname)[i]=' ';i=-1;while(jn[++i])(jp2->jobname)[i]=jn[i];(jp2->jobname)[i]='\0';jp2->joblength=jl;jp2->jobaddress=min1->freeaddress;//登记该作业的起始地址(块的最低地址)*ja=jp2->jobaddress;//将节点jp2插入作业链jobp,按高址到低址的顺序。
操作系统存储管理实验报告

操作系统存储管理实验报告一、实验目的操作系统的存储管理是计算机系统中非常重要的组成部分,它直接影响着系统的性能和资源利用率。
本次实验的目的在于深入理解操作系统中存储管理的基本原理和方法,通过实际操作和观察,掌握存储分配、回收、地址转换等关键技术,并对不同存储管理策略的性能进行分析和比较。
二、实验环境本次实验在 Windows 10 操作系统下进行,使用 Visual Studio 2019 作为编程环境,编程语言为 C++。
三、实验内容(一)固定分区存储管理1、原理固定分区存储管理将内存空间划分为若干个固定大小的分区,每个分区只能装入一道作业。
分区的大小可以相等,也可以不等。
2、实现创建一个固定大小的内存空间数组,模拟内存分区。
为每个分区设置状态标志(已分配或空闲),并实现作业的分配和回收算法。
3、实验结果与分析通过输入不同大小的作业请求,观察内存的分配和回收情况。
分析固定分区存储管理的优缺点,如内存利用率低、存在内部碎片等。
(二)可变分区存储管理1、原理可变分区存储管理根据作业的实际需求动态地划分内存空间,分区的大小和数量是可变的。
2、实现使用链表或数组来管理内存空间,记录每个分区的起始地址、大小和状态。
实现首次适应、最佳适应和最坏适应等分配算法,以及分区的合并和回收算法。
3、实验结果与分析比较不同分配算法的性能,如分配时间、内存利用率等。
观察内存碎片的产生和处理情况,分析可变分区存储管理的优缺点。
(三)页式存储管理1、原理页式存储管理将内存空间和作业都划分为固定大小的页,通过页表将逻辑地址转换为物理地址。
2、实现设计页表结构,实现逻辑地址到物理地址的转换算法。
模拟页面的调入和调出过程,处理缺页中断。
3、实验结果与分析测量页式存储管理的页面置换算法(如先进先出、最近最少使用等)的命中率,分析其对系统性能的影响。
探讨页大小的选择对存储管理的影响。
(四)段式存储管理1、原理段式存储管理将作业按照逻辑结构划分为若干个段,每个段有自己的名字和长度。
操作系统实验-存储管理

操作系统实验-存储管理操作系统实验-存储管理1、引言1.1 概述在操作系统中,存储管理是一个关键的任务。
它负责将程序和数据加载到内存中,管理内存的分配和回收,并确保不同进程之间的内存互不干扰。
本实验旨在深入了解并实践存储管理的相关概念和算法。
1.2 目的本实验的目的是让学生通过实际操作,了解存储管理的基本原理和常用算法,包括分页、分段和虚拟内存等。
通过实验,学生将学会如何实现内存分配和回收,以及处理内存碎片等问题。
1.3 实验环境- 操作系统:Windows、Linux、MacOS等- 编程语言:C、C++等2、实验步骤2.1 实验准备- 安装相应的开发环境和工具- 创建一个空白的项目文件夹,用于存放实验代码和相关文件2.2 实验一、分页存储管理- 理解分页存储管理的概念和原理- 实现一个简单的分页存储管理系统- 设计测试用例,验证分页存储管理的正确性和有效性2.3 实验二、分段存储管理- 理解分段存储管理的概念和原理- 实现一个简单的分段存储管理系统- 设计测试用例,验证分段存储管理的正确性和有效性2.4 实验三、虚拟存储管理- 理解虚拟存储管理的概念和原理- 实现一个简单的虚拟存储管理系统- 设计测试用例,验证虚拟存储管理的正确性和有效性3、实验结果分析3.1 分页存储管理结果分析- 分析分页存储管理系统的性能优缺点- 比较不同页面大小对系统性能的影响3.2 分段存储管理结果分析- 分析分段存储管理系统的性能优缺点- 比较不同段大小对系统性能的影响3.3 虚拟存储管理结果分析- 分析虚拟存储管理系统的性能优缺点- 比较不同页面置换算法对系统性能的影响4、总结与展望4.1 实验总结- 总结本次实验的收获和体会- 分析实验中遇到的问题和解决方法4.2 实验展望- 探讨存储管理领域的未来发展方向- 提出对本实验的改进意见和建议附件:无法律名词及注释:- 存储管理:操作系统中负责管理内存的任务,包括内存分配、回收和管理等功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验6:数据存储与访问课程名称移动编程课程号16242215x0学院(系) 数学与计算机专业计算机科学与技术班级计科1141班学生姓名学号实验地点科技楼425 实验日期2017.4.1一、实验目的1.熟悉在Android Studio开发环境下编写Android应用程序的流程;2.理解在Android Studio开发环境下进行用户界面设计的基本方法;3.掌握应用Android碎片控件Fragment开发适用于大屏幕的应用程序的方法。
4.掌握应用Android存储方法SharePreferences的应用方法。
二、实验内容在Android Studio开发环境下,使用Android的Fragment碎片控件、TextView文本标签控件、ListView列表控件、FrameLayout框架布局控件,利用SharePreferences存储方法,采用双页显示模式实现一个适用于大屏幕设备的简易新闻阅读器应用程序。
三、实验设备Android Studio四、实验结果用户界面布局设计采用了水平线性布局方式,分为左右两个碎片Fragment;其中,左侧为新闻标题列表子界面,右侧为新闻详细内容子界面。
当点击新闻标题列表中的某一标题时,右侧的Fragment将显示相应新闻标题的详细内容。
五、源代码主Activity的布局文件activity_main.xml的源代码<LinearLayout xmlns:android="/apk/res/android" xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent" android:paddingLeft="16dp"android:paddingRight="16dp"android:paddingTop="16dp"android:paddingBottom="16dp"android:orientation="horizontal"><FrameLayoutandroid:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:id="@+id/fl_title"></FrameLayout><FrameLayoutandroid:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="3"android:id="@+id/fl_content"></FrameLayout></LinearLayout>新闻标题列表的布局资源文件news_title_frag.xml的源代码<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><ListViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/news_title_list_view" /></LinearLayout>新闻标题列表子项的布局资源文件news_item.xml的源代码<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/news_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:singleLine="true" //singleLine属性设置为true表示该TextView只能单行显示android:ellipsize="end" //ellipsize属性用于设定当文本内容超出控件宽度时,文本的缩略方式,这里设置为end表示在尾部进行缩略android:paddingLeft="10dp"android:paddingRight="10dp"android:paddingTop="15dp"android:paddingBottom="15dp"android:textSize="10sp" /> //textSize属性用于设置文本大小,推荐单位为sp(放大像素, scaled pixels)</LinearLayout>新闻内容的布局资源文件news_content_frag.xml的源代码<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:id="@+id/news_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:padding="10dp"android:textSize="15sp" /><ImageViewandroid:layout_width="match_parent"android:layout_height="1dp"android:scaleType="fitXY" // scaleType属性设置为fitXY,表示图像将填充满整个控件的大小android:src="@drawable/spilt_line"/><TextViewandroid:id="@+id/news_content"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:padding="15dp"android:textSize="10sp" /></LinearLayout><ImageViewandroid:layout_width="1dp"android:layout_height="match_parent"android:layout_alignParentLeft="true"android:scaleType="fitXY"android:src="@drawable/spilt_line_vertical"/></RelativeLayout>Main_Activity.javapackage com.example.liheng1.mynewsapplication;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.content.Context;import android.content.SharedPreferences;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import java.util.ArrayList;public class MainActivity extends ActionBarActivity {private ArrayList<News> newsArrayList = null;private FragmentManager fManager = null;public MainActivity() {}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);createNewsSPData(); //调用自定函数,若程序首次运行则生成新闻的 SharedPreferences数据文件// 读取新闻SP数据文件中的数据,以此生成新闻数组列表newsArrayListnewsArrayList = new ArrayList<News>();SharedPreferences SP_NewsCount = getSharedPreferences("NewsCount", Context.MODE_PRIVATE);int newsCount = SP_NewsCount.getInt("Count",0);for (int i = 1; i <= newsCount; i++) {String FileName = "News"; // 新闻的文件名前缀SharedPreferences SP_News = getSharedPreferences(FileName + i, Context.MODE_PRIVATE);News news = new News();news.setTitle(SP_News.getString("NewsTitle",null));news.setontent(SP_News.getString("NewsContent", null));newsArrayList.add(news);}fManager = getFragmentManager();NewsTitleFragment ntFragment = new NewsTitleFragment(fManager, newsArrayList);FragmentTransaction ft = fManager.beginTransaction();//显示新闻标题:将显示新闻标题的Fragment替换掉对应位置处的FrameLayout控件ft.replace(R.id.fl_title, ntFragment);mit();}@Overrideprotected void onStop() {super.onStop();createRunRecordSPData(); //调用自定函数,生成程序首次运行记录的 SharedPreferences数据文件}private void createNewsSPData() {String RUN_RECORD = "AppRunRecord"; // 记录 App是否首次运行的SP文件的文件名String FIRST_RUN = "FirstRun"; // 首次运行的标签名String NEWS_COUNT = "NewsCount"; // 记录新闻数量的SP文件的文件名String COUNT = "Count"; // 新闻数量的标签名String FileName = "News"; // 新闻的文件名前缀SharedPreferences SP_RunRecord = getSharedPreferences(RUN_RECORD, Context.MODE_PRIVATE);if(SP_RunRecord.getBoolean(FIRST_RUN,true)){int newsCount = 20;for(int i=1;i<=newsCount;i++) {SharedPreferences SP_News = getSharedPreferences(FileName+i,Context.MODE_PRIVATE);SharedPreferences.Editor editor_News = SP_News.edit();String newsTitle = "新闻标题" + i + ":若能正常显示此标题,则说明程序已经成功一半了";String newsContent = " 这是新闻标题 " + i + " 所对应的新闻内容,内容如下:" +"Fragment很多时候都是在平板应用开发中使用的,主要是为了解决屏幕空间" +"不能充分利用的问题。