HY-DV878怎样24c02读写程序详解

.net程序怎么用txt文本读写数据_百度知道
.net程序怎么用txt文本读写数据
net小程序做了一个,程序运行要比操作数据库快,想用txt文本来读写数据
提问者采纳
filestream 类去读写数据
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Android应用程序组件Content Provider简要介绍和学习计划 - 老罗的Android之旅
- 博客频道 - CSDN.NET
32716人阅读
&& & & &在Android系统中,Content Provider作为应用程序四大组件之一,它起到在应用程序之间共享数据的作用,同时,它还是标准的数据访问接口。前面的一系列文章已经分析过Android应用程序的其它三大组件(Activity、Service和Broadcast Receiver)了,本文将简要介绍Content Provider组件在Android应用程序设计中的地位,为进一步学习打好基础。&& & & &我们知道,在Android系统上,每一个应用程序都有一个独立的用户ID。为什么要给每一个应用程序分配一个独立的用户ID呢?这是为了保护各个应用程序的数据不被其它应用程序恶意破坏而设计的。Android系统是基于Linux内核来开发的,而在Linux系统中,每一个文件除了文件本身的数据之外,还具有一定的属性,其中最重要的就是文件权限了。所谓的文件权限,就是指对文件的读、写和执行权限。此外,Linux还是一个多用户的操作系统,因此,Linux将系统中的每一个文件都与一个用户以及用户组关联起来,基于不同的用户而赋予不同的文件权限。只有当一个用户对某个文件拥有相应的权限时,才能执行相应的操作,例如,只有当一个用户对某个文件拥有读权限时,这个用户才可以调用read系统调用来读取这个文件的内容。Android系统继承了Linux系统管理文件的方法,为每一个应用程序分配一个独立的用户ID和用户组ID,而由这个应用程序创建出来的数据文件就赋予相应的用户以及用户组读写的权限,其余用户则无权对该文件进行读写。&& & & &如果我们通过adb shell命令连上模拟器,切换到/data/data目录下,就可以看到很多以应用程序包(package)命名的文件夹,这些文件夹里面存放的就是各个应用程序的数据文件,例如,如果我们进入到Android系统日历应用程序数据目录com.android.providers.calendar下的databases文件中,会看到一个用来保存日历数据的数据库文件calendar.db,它的权限设置如下所示:root@android:/data/data/com.android.providers.calendar/databases # ls -l
-rw-rw---- app_17
-11-07 15:50 calendar.db&& & & &在前面的十字符-rw-rw----中,最前面的符号-表示这是一个普通文件,接下来的三个字符rw-表示这个文件的所有者对这个文件可读可写不可执行,再接下来的三个字符rw-表示这个文件的所有者所在的用户组的用户对这个文件可读可写不可执行,而最后的三个字符---表示其它的用户对这个文件不可读写也不可执行,因为这是一个数据文件,所认所有用户都不可以执行它是正确的。在接下来的两个app_17字符串表示这个文件的所有者和这个所有者所在的用户组的名称均为app_17,这是应用程序在安装的时候系统分配的,在不同的系统上,这个字符串可能是不一样,不过它所表示的意义是一样的。这意味着只有用户ID为app_17或者用户组ID为app_17的那些进程才可以对这个calendar.db文件进行读写操作。我们通过执行终端上执行ps命令来查看一下哪个进程的用户ID为app_17:root@android:/ # ps
c009f230 0000875c S /init
92 ffffffff afd0c38c
S com.android.providers.calendar
R ps&& & & &这里我们看到,正是这个日历应用程序com.android.providers.calendar进程的用户ID为app_17。这样,就验证了我们前面的分析了:只有这个日历应用程序com.android.providers.calendar才可以对这个calendar.db文件进行读写操作。这个日历应用程序com.android.providers.calendar其实是由一个Content Provider组件来实现的,在下一篇文章中,我们将实现一个自己的Content Provider,然后再对Content Provider的实现原理进行详细分析。&& & & &Android系统对应用程序的数据文件作如此严格的保护会不会有点过头了呢?如果一个应用程序想要读写另外一个应用程序的数据文件时,应该怎么办呢?举一个典型的应用场景,我们在开发自己的应用程序时,有时候会希望读取通讯录里面某个联系人的手机号码或者电子邮件,以便可以对这个联系人打电话或者发送电子邮件,这时候就需要读取通讯录里面的联系人数据文件了。&& & & &现在在互联网里面,都流行平台的概念,各大公司都打着开放平台的口号,来吸引第三方来为自己的平台做应用,例如,国外最流行的Fackbook开放平台和Google+开放平台等,国内的有腾讯的Q+开放平台,还有新浪微博开放平台、360的开放平台等。这些开放平台的核心就是要开放用户数据给第三方来使使用,就像前面我们说的Android系统的通讯录,它需要把自己联系人数据开放出来给其它应用程序使用。但是,这些数据都是各个平台自己的核心数据和核心竞争力,它们需要有保护地进行开放。Android系统中的Content Provider应用程序组件正是结合上面分析的这种文件权限机制来秉承这种有保护地开放自己的数据给其它应用程序使用的理念。&& & & &从另外一个观点来看,即使我们不是在做平台,而只是在做一个应用程序软件,是不是就不需要这么使用到Content Provider机制了呢?非也,现在的应用程序软件,越着公司业务的成长,越来越庞大,越来越复杂。软件工程告诉我们,我们在设计这种大型的复杂的软件的时候,需要分模块和分层次来实现各个子功能组件,使得各个模块功能以松耦合的方式组织在一起完成整个应用程序功能。这样做的好处当然就是便于我们维护和扩展应用程序的代码和功能了,以及适应复杂的业务环境。在一个大型的应用程序软件架构中,从垂直的方向来看,一般都会划分为数据层、数据访问接口层以及上面的业务层。数据层用来保存数据,这些数据可以用文件的方式来组织,也可以用数据库的方式来组织,甚至可以保存在网络中;数据访问层负责向上面的业务层提供数据,而向下管理好数据层的数据;最后业务层通过数据访问层来获取一些业务相关的数据来实现自己的业务逻辑。&& & & &基于这种开放平台建设或者复杂软件架构的理念,我们得出一个Android应用程序设计的一般方法,如下图所示:&& & & &在这个架构中, 数据层采用数据库、文件或者网络来保存数据,数据访问层使用Content Provider来实现,而业务层就通过一些APP来实现。为了降低各个功能模块间耦合性,我们可以把业务层的各个APP和数据访问层中的Content Provider,放在不同的应用程序进程中来实现,而数据库中的数据统一由Content Provider来管理,即Content Provider拥有对这些文件直接进行读写的权限,同时,它又根据需要来有保护地把这些数据开放出来给上层的APP来使用。&& & & &那么,Content Provider又是如何把数据开放给上面的APP使用呢?一方面是这些APP没有权限读取这些数据文件,另一外面是Content Provider和这些APP是在不同的进程空间里面。回忆一下,我们在前面这一系文章中学习的Android系统中Binder进程间通信机制,不同的应用程序之间可以通过Binder进程间调用来传输数据。因此,前面关于一个应用程序应该如何来读写另外一个应用程序的数据的问题的答案就是使用Binder进程间通信机制,虽然一个应用程序不能直接读取另一个应用程序的数据,但是它却可以通过进程间通信方式来请求另一个这个应用程序给它传输数据。这样我们就解决了文件权限限制所带来的问题了。&& & & &然而,事情还不是那么简单,一般Content &Provider管理的都是大量的数据,如果在进程间传输大量的数据,效率是不是会很低下呢?这时候,前面我们在这一系列文章中学习的匿名共享内存(Anonymous Shared Memory)就派上用场了。把需要在进程间传输的数据都写到共享内存中去,然后只能通过Binder进程间通信机制来传输一个共享内存的打开文件描述符给对方就好了,是不是很简单呢。在Android系统中,Binder进程间通信机制和匿名共享内存机制结合在一起使用,真是太完美了。&& & & &Content Provider如何在应用程序之间共享数据以及它在应用程序设计中的地位就简要介绍到这里了,在接下来的四篇文章中,我们将以一个&Content Provider的应用实例来详细分析它的启动过程、数据共享原理以及数据监控机制:&& & & &1. 。&& & & &2. 。&& & & &3. 。&& & & &4. 。&& & & &敬请关注!老罗的新浪微博:,欢迎关注!
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5504681次
积分:30341
积分:30341
排名:第68名
原创:129篇
评论:6467条
本博客所有文章均为原创,欢迎交流,欢迎转载;转载请勿篡改内容,并且注明出处,禁止用于商业目的,谢谢!
《Android系统源代码情景分析》
电子工业出版社
本书繁体版已经成功输出到台湾
新浪微博:
QQ交流群:
(1000人群,已满)
(1000人群,已满)
PS:请勿同时加入多个群,一经发现,永久封号,谢谢!
文章:129篇
阅读:5520353C#中,多个程序同时读写同一个文件时,如何避免文件锁定,可以采用什么方法?_百度知道
C#中,多个程序同时读写同一个文件时,如何避免文件锁定,可以采用什么方法?
锁的分配方式也要考虑一下你的意思是不是避免文件被死锁呀,那么在给文件加读锁或写锁的时候给每个锁加个时间限制就成了吧?如果是。如果哪个锁超时就自动失去权限。当然、文件解锁
其他类似问题
按默认排序
其他1条回答
File读取文件有一个方法是共享方式打开文件,可以多个程序同时读书,当然lock也不无道理,看你自已怎么选择了
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁[求助]MCU程序读写的方法_百度知道
[求助]MCU程序读写的方法
不知那位师傅知道怎样对MCU的程序进行读.高压电路多已修好.写.我在这里先谢了.另一台开不了机.但是他们的二块MCU多坏了.擦.一台能开机但是显示白屏本人最近修到二台液晶彩显
提问者采纳
编程器才可以。
查看原帖&gt,如果是最新的型号可以用下载线,或者是屏线;&gt。开机白屏有可能是液晶屏坏了。建议检查一下。但是必须的有对应液晶屏型号的程序才可以
其他类似问题
mcu的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁步科触摸屏怎样读写程序_百度知道
步科触摸屏怎样读写程序
提问者采纳
链接好通讯电缆(一般都是USB),安装好驱动程序,再利用上传和下载对触摸屏进行读写
提问者评价
其他类似问题
您可能关注的推广
步科触摸屏的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 24c02读写程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信