- 基于Java的ProtocolBuffer
sylar哇咔咔
Javajavaprotocolbuffer
这篇博客既是帮助一些初学者深入理解protocolBuffer,也是为了方便自己记忆和进一步学习。本文主要介绍了三个方面,包括:·在一个.proto文件里面如何定义消息格式·如何使用protocolbuffer的编译器·如何使用javaprotocolbuffer的API来读写消息首先,让我们来了解一下为什么要使用protocolBuffer?假设我们现在要做一个叫做“addressbook”的应
- 糊涂工具包使用 记录
憨憨小江
springbootjava开发语言
hutool工具包配置引入依赖cn.hutoolhutool-all5.8.16BeanUtilbean复制Ordersorders=BeanUtil.copyProperties(ordersSubmitDTO,Orders.class);String相关操作判断是否为空,如果为空,设置为自定义strStrUtil.blankToDefault(addressBook.getConsignee(
- 黑马苍穹外卖学习Day8
Jimmy Ding
Java学习javaspringbootmybatisintellijidea
文章目录地址簿功能模块需求分析代码开发用户下单需求分析代码开发订单支付微信支付介绍微信支付准备工作代码导入地址簿功能模块需求分析代码开发Controller层@RestController@RequestMapping("/user/addressBook")@Slf4j@Api(tags="C端-地址簿接口")publicclassAddressBookController{@Autowired
- iOS 获取通讯录权限和权限提示弹框
若风华浊世间
ios通讯录
首先-先导入个库pod‘RHAddressBook’或者直接下载拷贝到项目里面去然后-在info.plist文件里面添加Privacy-ContactsUsageDescription这个是你获取权限时弹出的提示框内容.然后导入#import#import#import"AddressBook.h"导入这三个之后,在代码里面获取://创建通讯录对象RHAddressBook*book=[[RHAd
- uni-app做A-Z排序通讯录、索引列表
季夏梧桐
uni-appjavascript前端
上图是效果图,三个问题访问电话通讯录,拿数据拿到用户的联系人数组对象,之后根据A-Z排序根据字母索引快速搜索首先说数据怎么拿-社区有指导https://ask.dcloud.net.cn/question/64117uniapp调取通讯录//#ifdefAPP-PLUSplus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE,func
- Java项目-瑞吉外卖Day6
向来痴_
java开发语言
导入用户地址功能,为用户添加地址:添加AddressBook实体类,创建相关service,mapper,serviceImpl,controller类。controller类直接使用的资料提供的代码。实现菜品展示移动端开发:看到前端发送了两个请求,由于第二个请求没有定义后端接口,所以页面无法正常显示。暂时改成静态资源显示效果:由于显示在前端的菜品没有口味信息,修改dishController中的
- C语言实现简易通讯录2.0(动态内存管理)
羟基与苯
C/C++实例c语言
我们在前文中介绍了如何实现简易通讯录,但是我们发现,如果直接在栈区开辟一个1000个大小为PeoInfo结构体大小的空间,而我们只使用了那么几个,不免有些过于浪费,于是我们考虑使用动态内存开辟来让空间使用更加合理。具体不再赘述,需要动态修改的内容只在几个函数中有所改变,代码中已经加注动态版本:的部分就是需要修改的部分。完整代码如下:addressBook.h文件:#pragmaonce//头文件#
- html 点击按钮接受短信验证码_一分钟快速集成短信验证码
weixin_39940688
html点击按钮接受短信验证码
基础知识在进行以下步骤前,请先完成您的账户配置,并前往-》短信-》短信服务配置页面上传相关资质,确保你的短信服务协议已配置完成(短信服务资质通过审核后,需要您注销当前登录,重新登入一次)。SUBMAIL目前提供5个应用,分别为:邮件(MAIL),短信(MESSAGE),地址薄(ADDRESSBOOK),应用集成(DEVELOPER)和账户(ACCOUNT)各应用提供的功能大致如下:邮件(MAIL)
- protobuf在java中使用_记录:Protocol Buffers(protobuf)在Java开发中使用
陈陈读书
1.编写一个.proto文件命名为:addressbook.proto,该文件内容来自protocal-buffers官网2.使用protoc-2.6.0-win32.zip解压后的protoc.exe生成Java类查询protoc.exe帮助:生成Java类:在Eclipse中的项目目录结构图如下:说明:上图中:addressbook.proto数据格式文件,AddressBookProtos.
- 【问题收集】iOS 13 Crash 处理
小子爱搞事
一,(AddressBook.framework)编辑通讯录Crash环境:release环境(pn1release或者dn1release)场景:编辑联系人信息Crash信息:2019-07-2317:36:45.836520+0800DingtoneBeta[2050:123112]***Terminatingappduetouncaughtexception'CNPropertyNotFet
- C语言实现简易通讯录3.0(通讯录信息可以向文件写入,从文件读取)
羟基与苯
C/C++实例c语言
我们在前文中介绍了如何实现简易通讯录后来又改进了通讯录,使之可以进行动态内存管理。但是,我们的通讯录程序是只能一次性使用的,退出程序所有的内容都消失了,那么本文就来实现将通讯录的数据写入到硬盘上的文件。再次打开程序时,再从文件上读取数据。实现数据的持久性。代码如下:addressBook.h文件#pragmaonce//头文件#include#include#include#defineMAX_N
- 【java】【项目实战】[外卖八]产品展示、购物车、下单开发
春天的菠菜
javajavamybatis开发语言
目录一、导入用户地址簿相关功能代码1需求分析2数据模型3导入功能代码3.1实体AddressBook3.2Mapper接口AddressBookMapper3.3业务接口层AddressBookService3.4业务接口实现类AddressBookServiceImpl3.5控制层AddressBookController4功能测试二、菜品展示1需求分析2代码开发2.1main.js2.2Dis
- Python读取及生成pb文件,pb与jsonStr互转,pb与dictJson互转,打包.exe/.sh并转换,很完美跨平台
程序媛一枚~
Python进阶pythonPythonpb与json转换google.protobufjson_formatProtoBuffers
Python读取及生成pb文件,pb与jsonStr互转,pb与dictJson互转,打包.exe/.sh并转换,很完美跨平台1.效果图2.命令行:proto文件转.class(绝对路径或相对路径)3.序列化、反序列化api4.pb转json,json转pb,pb转dict5.打包.exe/.sh并调用6.源代码6.1addressbook.proto6.2pb2json.py参考读取pb及生成p
- Wonderful Sql
Gocara
sql数据库mysql
WonderfulSql一.初识数据库练习题1.1编写一条CREATETABLE语句,用来创建一个包含表1-A中所列各项的表Addressbook(地址簿),并为regist_no(注册编号)列设置主键约束表1-A表Addressbook(地址簿)中的列DROPTABLEIFEXISTSAdressbook;CREATETABLEAdressbook(regist_noINTEGERNOTNULL
- Swift:JKContactsKit 获取通讯录的联系人
IIronMan
JKSwiftExtension,测试用例在JKContactsKitViewController里面目录:1、简介和CNKeyDescriptor的key介绍2、通讯录的基本使用获取授权状态查询出所有通讯录信息添加新联系人更新联系人删除联系人一、简介和CNKeyDescriptor的key介绍1.1、在iOS9.0之前,我们只能通过AddressBook框架来获取通讯录联系人信息。但Addres
- iOS的系统架构和常用的iOS框架
旅行者_sz
一、系统架构iOS系统分为可分为四级结构,由上至下分别为可触摸层(CocoaTouchLayer)、媒体层(MediaLayer)、核心服务层(CoreServicesLayer)、核心系统层(CoreOSLayer),242467-e64cf319b99d15d3.png二、常用框架Accelerate.framework包含加速数学和DSP函数。AddressBook.framework包含直
- uniapp 获取通讯录
阿无呀
javascriptjs安卓uni-app
就获取通讯录与判断用户通讯录权限状态的处理getContacts(){//获取通讯录对象plus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE,(addressbook)=>{//查找联系人addressbook.find(['displayName','phoneNumbers'],(contacts)=>{letlis=cont
- Python—将一个文件复制到另一个文件以及合并两个文件
Y_ni
Python数据分析和数据挖掘python数据分析数据挖掘
题目:1.编程实现将文件file1的内容复制到文件file2中。2.有一个职工通讯信息文件"TeleAddressBook.txt”,内容为解答:1、编程实现将文件file1的内容复制到文件file2中。思路:首先新建文件夹file1,其中新建了AddressBook.txt、EmailAddressBook.txt、TeleAddressBook.txt三个文本文件,其次在spyder(pyth
- 基于字典的通讯录——python
weixin_45714660
python开发语言后端
1.首先要在同目录下建立addressbook.json问,然后用记事本打开2.在addressbook.py中输入代码importos,jsonaddress_book={}ifos.path.exists("addressbook.json"):withopen(r'addressbook.json','r',encoding="utf-8")asf:address_book=json.loa
- map-underscore-to-camel-case配置
yqd666
mybatisjava数据库springboot
mybatis默认是属性名和数据库字段名一一对应的,即数据库表列:address_book实体类属性:address_book在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射例如:address_book—>addressBook此属性在MyBatis中默认值为false,在Springboot中,可以通过设置map-underscore-to-camel-case属
- FlutterPlugin获取手机通讯录
倪大头
用AndroidStudio创建flutterplugin项目:image.png创建完成目录长这样:image.png主要文件就三个,addressbook_plugin.dart里写flutter代码,AddressbookPlugin.m写iOS代码,安卓代码则是AddressbookPlugin.java先看flutter代码addressbook_plugin.dart:import'd
- 【学校实验】编码实现一个地址簿类(AddressBook),通过getAllInfo()输出,实现另一个类(TestAddressBook)该类存有主方法
晏楠先生
JavaSE入门实验java面向对象编程
题目:代码:1.AddressBook代码:publicclassAddressBook{privateStringname;privateStringaddress;privateStringtel;//无参构造函数publicAddressBook(){}//满参构造函数publicAddressBook(Stringname,Stringaddress,Stringtel){this.nam
- protobuf c++编程笔记
目录字段内容的定义修饰符字段类型引用方式不同字段的方法1)optional修饰的基本类型:2)optional修饰的对象类型:3)repeated修饰的基本类型:4)repeated修饰的对象类型:序列化反序列化总结字段内容的定义//文件名:addressbook.protosyntax="proto2";//proto版本//.proto文件新增一个可选的package声明符,用来防止不同的消息
- C++| C++ 入门教程(九)通讯录管理系统
c++
9通讯录管理系统我们要用之前学的所有知识做一个通讯录管理系统。需要实现下面几个功能:添加通讯录显示通讯录删除通讯录查找通讯录修改通讯录清空通讯录退出通讯录我决定分两层来写,一层Manager用来管理和主界面交互的功能,另一层AddressBook用来控制底层的存储逻辑。底层的头文件和源文件如下://AddressBook.h#pragmaonce#include#include#defineMAX
- 通讯录
DDY
系统通讯录AddressBook(iOS9之前)引入头文件#import#import遵循代理实现代理方法#pragmamark选择联系人-(void)handleAddContact:(UIButton*)sender{ABPeoplePickerNavigationController*peoplePicker=[[ABPeoplePickerNavigationControlleralloc
- iOS开发------获取系统联系人(Contacts篇)
RITL
Contacts.framework是Apple在iOS9.0替代AddressBook.framework的框架,至于AddressBook是做什么的框架,楼主默认看到博文的开发者是知道的O(∩_∩)O。如果想了解AddressBook的使用欢迎查看一下楼主之前关于AddressBook的博文,本篇不做过多的缀余:iOS开发------获取系统联系人(AddressBook篇)iOS开发----
- ios9.0 获取通讯录数据“干货”分享
Mr_Candy
方法总结:在iOS9.0之前,获取通讯录中的数据大多用的都是用基于C语言的有界面[AddressBookUI.framework]或者无UI界面[AddressBook.framework]类库,在OC开发中,可能会感觉到不爽!iOS9.0之后,苹果进行了代码封装,非常好用,下面我们一起来体验一下吧!细节提醒:有过这方面开发经验的小伙伴们可能知道,若要获取通讯录数据,必须要进行用户授权,否则App
- iOS获取通讯录
leesum
内容概述iOS给我们提供了四个框架来供我们使用:iOS9之前,有AddressBookUI.framework和AddressBook.framework,iOS9推出的ContactsUI.framework和Contacts.framework根据名称就可以区分一个有界面,一个无界面;Contacts框架相对AddressBook框架来说,肯定要简单的多,如果不针对iOS9以前的版本进行适配,
- 【AddressBook】ABRecord(ABPerson) - 联系人信息
居然是村长
ABRecord:联系人信息基本记录ABPerson:联系人详细信息帮助ABRecord联系人信息(Base)获取信息//信息idABRecordIDrecordId=ABRecordGetRecordID(person);//信息类型ABRecordTyperecordType=ABRecordGetRecordType(person);//获取信息内部某条数据CFTypeReffirstNam
- 获取通讯录-AddressBook(swift)
翻这个墙
获取通讯录-AddressBook(swift)导入框架importAddressBook实现步骤及代码overridefuncviewDidLoad(){super.viewDidLoad()//1.获取当前的授权状态,letstatus=ABAddressBookGetAuthorizationStatus()ifstatus==.NotDetermined{//2.如果当前没有授权,应该请求
- ViewController添加button按钮解析。(翻译)
张亚雄
c
<div class="it610-blog-content-contain" style="font-size: 14px"></div>// ViewController.m
// Reservation software
//
// Created by 张亚雄 on 15/6/2.
- mongoDB 简单的增删改查
开窍的石头
mongodb
在上一篇文章中我们已经讲了mongodb怎么安装和数据库/表的创建。在这里我们讲mongoDB的数据库操作
在mongo中对于不存在的表当你用db.表名 他会自动统计
下边用到的user是表明,db代表的是数据库
添加(insert):
- log4j配置
0624chenhong
log4j
1) 新建java项目
2) 导入jar包,项目右击,properties—java build path—libraries—Add External jar,加入log4j.jar包。
3) 新建一个类com.hand.Log4jTest
package com.hand;
import org.apache.log4j.Logger;
public class
- 多点触摸(图片缩放为例)
不懂事的小屁孩
多点触摸
多点触摸的事件跟单点是大同小异的,上个图片缩放的代码,供大家参考一下
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener
- 有关浏览器窗口宽度高度几个值的解析
换个号韩国红果果
JavaScripthtml
1 元素的 offsetWidth 包括border padding content 整体的宽度。
clientWidth 只包括内容区 padding 不包括border。
clientLeft = offsetWidth -clientWidth 即这个元素border的值
offsetLeft 若无已定位的包裹元素
- 数据库产品巡礼:IBM DB2概览
蓝儿唯美
db2
IBM DB2是一个支持了NoSQL功能的关系数据库管理系统,其包含了对XML,图像存储和Java脚本对象表示(JSON)的支持。DB2可被各种类型的企 业使用,它提供了一个数据平台,同时支持事务和分析操作,通过提供持续的数据流来保持事务工作流和分析操作的高效性。 DB2支持的操作系统
DB2可应用于以下三个主要的平台:
工作站,DB2可在Linus、Unix、Windo
- java笔记5
a-john
java
控制执行流程:
1,true和false
利用条件表达式的真或假来决定执行路径。例:(a==b)。它利用条件操作符“==”来判断a值是否等于b值,返回true或false。java不允许我们将一个数字作为布尔值使用,虽然这在C和C++里是允许的。如果想在布尔测试中使用一个非布尔值,那么首先必须用一个条件表达式将其转化成布尔值,例如if(a!=0)。
2,if-els
- Web开发常用手册汇总
aijuans
PHP
一门技术,如果没有好的参考手册指导,很难普及大众。这其实就是为什么很多技术,非常好,却得不到普遍运用的原因。
正如我们学习一门技术,过程大概是这个样子:
①我们日常工作中,遇到了问题,困难。寻找解决方案,即寻找新的技术;
②为什么要学习这门技术?这门技术是不是很好的解决了我们遇到的难题,困惑。这个问题,非常重要,我们不是为了学习技术而学习技术,而是为了更好的处理我们遇到的问题,才需要学习新的
- 今天帮助人解决的一个sql问题
asialee
sql
今天有个人问了一个问题,如下:
type AD value
A  
- 意图对象传递数据
百合不是茶
android意图IntentBundle对象数据的传递
学习意图将数据传递给目标活动; 初学者需要好好研究的
1,将下面的代码添加到main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http:/
- oracle查询锁表解锁语句
bijian1013
oracleobjectsessionkill
一.查询锁定的表
如下语句,都可以查询锁定的表
语句一:
select a.sid,
a.serial#,
p.spid,
c.object_name,
b.session_id,
b.oracle_username,
b.os_user_name
from v$process p, v$s
- mac osx 10.10 下安装 mysql 5.6 二进制文件[tar.gz]
征客丶
mysqlosx
场景:在 mac osx 10.10 下安装 mysql 5.6 的二进制文件。
环境:mac osx 10.10、mysql 5.6 的二进制文件
步骤:[所有目录请从根“/”目录开始取,以免层级弄错导致找不到目录]
1、下载 mysql 5.6 的二进制文件,下载目录下面称之为 mysql5.6SourceDir;
下载地址:http://dev.mysql.com/downl
- 分布式系统与框架
bit1129
分布式
RPC框架 Dubbo
什么是Dubbo
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 集群容错: 提供基于接
- 那些令人蛋痛的专业术语
白糖_
springWebSSOIOC
spring
【控制反转(IOC)/依赖注入(DI)】:
由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
简单的说:对象的创建又容器(比如spring容器)来执行,程序里不直接new对象。
Web
【单点登录(SSO)】:SSO的定义是在多个应用系统中,用户
- 《给大忙人看的java8》摘抄
braveCS
java8
函数式接口:只包含一个抽象方法的接口
lambda表达式:是一段可以传递的代码
你最好将一个lambda表达式想象成一个函数,而不是一个对象,并记住它可以被转换为一个函数式接口。
事实上,函数式接口的转换是你在Java中使用lambda表达式能做的唯一一件事。
方法引用:又是要传递给其他代码的操作已经有实现的方法了,这时可以使
- 编程之美-计算字符串的相似度
bylijinnan
java算法编程之美
public class StringDistance {
/**
* 编程之美 计算字符串的相似度
* 我们定义一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为:
* 1.修改一个字符(如把“a”替换为“b”);
* 2.增加一个字符(如把“abdd”变为“aebdd”);
* 3.删除一个字符(如把“travelling”变为“trav
- 上传、下载压缩图片
chengxuyuancsdn
下载
/**
*
* @param uploadImage --本地路径(tomacat路径)
* @param serverDir --服务器路径
* @param imageType --文件或图片类型
* 此方法可以上传文件或图片.txt,.jpg,.gif等
*/
public void upload(String uploadImage,Str
- bellman-ford(贝尔曼-福特)算法
comsci
算法F#
Bellman-Ford算法(根据发明者 Richard Bellman 和 Lester Ford 命名)是求解单源最短路径问题的一种算法。单源点的最短路径问题是指:给定一个加权有向图G和源点s,对于图G中的任意一点v,求从s到v的最短路径。有时候这种算法也被称为 Moore-Bellman-Ford 算法,因为 Edward F. Moore zu 也为这个算法的发展做出了贡献。
与迪科
- oracle ASM中ASM_POWER_LIMIT参数
daizj
ASMoracleASM_POWER_LIMIT磁盘平衡
ASM_POWER_LIMIT
该初始化参数用于指定ASM例程平衡磁盘所用的最大权值,其数值范围为0~11,默认值为1。该初始化参数是动态参数,可以使用ALTER SESSION或ALTER SYSTEM命令进行修改。示例如下:
SQL>ALTER SESSION SET Asm_power_limit=2;
- 高级排序:快速排序
dieslrae
快速排序
public void quickSort(int[] array){
this.quickSort(array, 0, array.length - 1);
}
public void quickSort(int[] array,int left,int right){
if(right - left <= 0
- C语言学习六指针_何谓变量的地址 一个指针变量到底占几个字节
dcj3sjt126com
C语言
# include <stdio.h>
int main(void)
{
/*
1、一个变量的地址只用第一个字节表示
2、虽然他只使用了第一个字节表示,但是他本身指针变量类型就可以确定出他指向的指针变量占几个字节了
3、他都只存了第一个字节地址,为什么只需要存一个字节的地址,却占了4个字节,虽然只有一个字节,
但是这些字节比较多,所以编号就比较大,
- phpize使用方法
dcj3sjt126com
PHP
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,下面介绍一个它的使用方法,需要的朋友可以参考下
安装(fastcgi模式)的时候,常常有这样一句命令:
代码如下:
/usr/local/webserver/php/bin/phpize
一、phpize是干嘛的?
phpize是什么?
phpize是用来扩展php扩展模块的,通过phpi
- Java虚拟机学习 - 对象引用强度
shuizhaosi888
JAVA虚拟机
本文原文链接:http://blog.csdn.net/java2000_wl/article/details/8090276 转载请注明出处!
无论是通过计数算法判断对象的引用数量,还是通过根搜索算法判断对象引用链是否可达,判定对象是否存活都与“引用”相关。
引用主要分为 :强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Wea
- .NET Framework 3.5 Service Pack 1(完整软件包)下载地址
happyqing
.net下载framework
Microsoft .NET Framework 3.5 Service Pack 1(完整软件包)
http://www.microsoft.com/zh-cn/download/details.aspx?id=25150
Microsoft .NET Framework 3.5 Service Pack 1 是一个累积更新,包含很多基于 .NET Framewo
- JAVA定时器的使用
jingjing0907
javatimer线程定时器
1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等。
对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。
privatejava.util.Timer timer;
timer = newTimer(true);
timer.schedule(
newjava.util.TimerTask() { public void run()
- Webbench
流浪鱼
webbench
首页下载地址 http://home.tiscali.cz/~cz210552/webbench.html
Webbench是知名的网站压力测试工具,它是由Lionbridge公司(http://www.lionbridge.com)开发。
Webbench能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相
- 第11章 动画效果(中)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- windows下制作bat启动脚本.
sanyecao2314
javacmd脚本bat
java -classpath C:\dwjj\commons-dbcp.jar;C:\dwjj\commons-pool.jar;C:\dwjj\log4j-1.2.16.jar;C:\dwjj\poi-3.9-20121203.jar;C:\dwjj\sqljdbc4.jar;C:\dwjj\voucherimp.jar com.citsamex.core.startup.MainStart
- Java进行RSA加解密的例子
tomcat_oracle
java
加密是保证数据安全的手段之一。加密是将纯文本数据转换为难以理解的密文;解密是将密文转换回纯文本。 数据的加解密属于密码学的范畴。通常,加密和解密都需要使用一些秘密信息,这些秘密信息叫做密钥,将纯文本转为密文或者转回的时候都要用到这些密钥。 对称加密指的是发送者和接收者共用同一个密钥的加解密方法。 非对称加密(又称公钥加密)指的是需要一个私有密钥一个公开密钥,两个不同的密钥的
- Android_ViewStub
阿尔萨斯
ViewStub
public final class ViewStub extends View
java.lang.Object
android.view.View
android.view.ViewStub
类摘要: ViewStub 是一个隐藏的,不占用内存空间的视图对象,它可以在运行时延迟加载布局资源文件。当 ViewSt