Uri详解:Android中的数据操作关键

需积分: 0 2 下载量 99 浏览量 更新于2024-07-10 收藏 2.31MB PPT 举报
"Uri介绍-android入门到精通" 在Android开发中,Uri(Uniform Resource Identifier)是一个关键概念,它用于表示应用程序要操作的数据。Uri不仅限于数据库中的数据,还可以指向文件、XML、网络资源等。Uri由多个部分组成,包括scheme、authority和path。 首先,scheme是固定的,对于Android的ContentProvider,scheme通常是"content://",这表明我们要访问的是Android系统中的内容提供者。 其次,authority是ContentProvider的唯一标识,通常是由应用包名加"."和自定义名称构成,用于区分不同的ContentProvider。外部应用通过这个标识来定位并请求特定ContentProvider提供的服务。 然后,path部分则用来指定我们要操作的具体数据。例如: - "/person/10" 表示操作person表中id为10的记录; - "/person/10/name" 表示操作person表中id为10的记录的name字段; - "/person" 操作person表中的所有记录; - "/xxx" 操作名为xxx的表中的记录。 Uri的构造可以根据业务需求灵活构建,以便精确地定位到所需的数据。如果需要将一个字符串转化为Uri对象,可以使用Uri类的`parse()`方法,如示例所示。 此外,关于3G技术的介绍,3G是第三代移动通信系统,它的核心是将无线通信与国际互联网等多媒体通信相结合,提供包括语音、数据、图像在内的多种信息服务。3G标准包括WCDMA、CDMA2000和TD-SCDMA,其中中国联通采用WCDMA,中国电信采用CDMA2000,中国移动采用具有自主知识产权的TD-SCDMA。3G相较于1G和2G的主要优势在于传输速度的大幅提升,为多媒体应用提供了可能。然而,尽管3G网络在大城市已基本覆盖,但全面普及还需要时间,当前许多用户仍在使用2.5G网络,如CDMA20001X和GPRS。 Android操作系统是Google在2007年推出的开源移动平台,现已成为全球最广泛使用的智能手机操作系统之一。Android在中国市场尤其活跃,吸引了众多手机厂商、运营商及开发者参与。Android不仅应用于手机,还在平板电脑、汽车以及各种智能设备上得到广泛应用,其开放性和灵活性极大地推动了移动互联网的发展。随着技术的进步,Android的应用场景将更加多样化,用户可以体验到更丰富的功能和服务。

suricata中void DetectHttpUriRegister (void) { /* http_uri content modifier / sigmatch_table[DETECT_AL_HTTP_URI].name = "http_uri"; sigmatch_table[DETECT_AL_HTTP_URI].desc = "content modifier to match specifically and only on the HTTP uri-buffer"; sigmatch_table[DETECT_AL_HTTP_URI].url = "/rules/http-keywords.html#http-uri-and-http-uri-raw"; sigmatch_table[DETECT_AL_HTTP_URI].Setup = DetectHttpUriSetup; #ifdef UNITTESTS sigmatch_table[DETECT_AL_HTTP_URI].RegisterTests = DetectHttpUriRegisterTests; #endif sigmatch_table[DETECT_AL_HTTP_URI].flags |= SIGMATCH_NOOPT|SIGMATCH_INFO_CONTENT_MODIFIER; sigmatch_table[DETECT_AL_HTTP_URI].alternative = DETECT_HTTP_URI; / http.uri sticky buffer / sigmatch_table[DETECT_HTTP_URI].name = "http.uri"; sigmatch_table[DETECT_HTTP_URI].alias = "http.uri.normalized"; sigmatch_table[DETECT_HTTP_URI].desc = "sticky buffer to match specifically and only on the normalized HTTP URI buffer"; sigmatch_table[DETECT_HTTP_URI].url = "/rules/http-keywords.html#http-uri-and-http-uri-raw"; sigmatch_table[DETECT_HTTP_URI].Setup = DetectHttpUriSetupSticky; sigmatch_table[DETECT_HTTP_URI].flags |= SIGMATCH_NOOPT|SIGMATCH_INFO_STICKY_BUFFER; DetectAppLayerInspectEngineRegister2("http_uri", ALPROTO_HTTP1, SIG_FLAG_TOSERVER, HTP_REQUEST_LINE, DetectEngineInspectBufferGeneric, GetData); DetectAppLayerMpmRegister2("http_uri", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister, GetData, ALPROTO_HTTP1, HTP_REQUEST_LINE); DetectAppLayerInspectEngineRegister2("http_uri", ALPROTO_HTTP2, SIG_FLAG_TOSERVER, HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2); DetectAppLayerMpmRegister2("http_uri", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister, GetData2, ALPROTO_HTTP2, HTTP2StateDataClient); DetectBufferTypeSetDescriptionByName("http_uri", "http request uri"); DetectBufferTypeRegisterSetupCallback("http_uri", DetectHttpUriSetupCallback); DetectBufferTypeRegisterValidateCallback("http_uri", DetectHttpUriValidateCallback); g_http_uri_buffer_id = DetectBufferTypeGetByName("http_uri"); 每一句都加上详细的注释

2023-05-25 上传