- Android开发笔记(四)
so.far_away
安卓开发进阶android笔记人工智能
中级控件图形定制图形Drawable形状图形Shape状态列表图形选择按钮复选框CheckBox开关按钮Switch单选按钮RadioButton文本输入编辑框EditText焦点变更监听器图形定制图形DrawableAndroid把所有能够显示的图形都抽象为Drawable类(可绘制的),这里的图形不止是图片,还包括色块、画板、背景等。包含图片在内的图形文件放在res目录下的各个drawable
- android开发笔记————简易随机器的制作
小时的枫
Android开发androidandroid开发asAndroidstudio
这几天无聊,于是做了个随机器,想着以后可能会用的到。以下是程序的运行截图图1可以通过右上角的菜单转到图2的Activity。这个程序提供了两个功能,一个是输入姓名后随机出姓名。另一个是产生随机数。—————————————————————————————————————————————————————————————————————————————好的,下面来看下怎么做吧:制作工具选的是Andro
- Android 开发笔记 -- Service
__lifanxin
androidandroidservicehandler
Android开发笔记--Service基本概念创建服务创建启动服务创建绑定服务服务的生命周期后台任务(非主线程任务)异步消息处理机制HandlerAsyncTask基本概念android四大组件之一:Service;Service是可在后台长时间运行但不提供界面的应用组件;Service依赖于创建Service的应用程序进程;可以在后台运行,但其自身并不会开启新线程;三种不同的服务类型:前台,执
- Android开发笔记:Retrofit + OkHttp3 + coroutines + LiveData打造一款网络请求框架
Android-until
Android程序员架构AndroidAndroid开发jetpackjava移动开发
一个好的网络框架需要有那些特点呢?请求当然这个请求不单单是发送请求这么简单,它包括请求相关的一系列配置是否简易、发送模式是否灵活切换、请求头信息是否易处理、请求参数是否易操作等等响应一个好的网络请求框架肯定需要提高我们的生产力,保证我们程序的健壮性,那么响应体和这些又有什么关系呢?容易转换成不同需求的实体是否能返回不同类型的结构。xml、json、text等等总的来说就是易使用、易扩展、可读性高一
- Android开发笔记(三)—Activity篇
so.far_away
安卓开发进阶安卓笔记android
活动组件Activity启动和结束生命周期启动模式信息传递Intent显式Intent隐式Intent向下一个Activity发送数据向上一个Activity返回数据附加信息利用资源文件配置字符串利用元数据传递配置信息给应用页面注册快捷方式启动和结束(1)从当前页面跳到新页面:startActivity(newIntent(源页面.this,目标页面.class))(2)从当前页面回到上一个页面,
- Android开发笔记
不偏不倚就是你
1.查询包名下的跳转activityPackageManagerpackageManager=context.getPackageManager();Intentintent=packageManager.getLaunchIntentForPackage("com.instagram.android");if(intent==null){GLog.iTag(SocialConstant.LOG_
- GIS地图学习笔记二之Android开发
沐左
androidGIS地图开发androidgissdkv100-1-0
新项目中需要用到GIS地图,触及自己的知识盲区。所以有必要去学习一下,这里把学习过程与思考记录一下。我这里使用的是ArcGISRuntimeSDK100.2.0,ArcGISRuntime还有一个版本10.2.*,这个版本的ArcGISRuntimeSDK的使用可以参考《ArcGISRuntimeSDKforAndroid开发笔记》系列blog。1、找资料1、适用于Android的ArcGISRu
- Android开发笔记 :理解Fragment
Tai_Monster
Android开发笔记android笔记
Android开发笔记:理解Fragment导言本篇文章产生的原因很简单,就是我在了解AndroidJetpack中的Lifecycle框架时发现Lifecycle具体时间和状态的更新都是由一个名为ReportFragment的Fragment来跟踪的,为了更好的了解Fragment是如何追踪Activity生命周期状态的变化我们有必要对Fragment组件进行更深入的探讨。Fragment管理器
- Service Intent must be explicit的解决方案
hero的技术小黑屋
title:ServiceIntentmustbeexplicit的解决方案date:2017-09-1415:11:43tags:Androidcategories:Android开发笔记今天在学习AIDL的时候,通过以下步骤:在AndroidMenifest中声明service在客户端中绑定serviceIntentintentService=newIntent();intentService
- android开发笔记,Android开发笔记
彼得威
android开发笔记
背景针对平时开发过程中遇到的问题、bug、难点或知识点做一个归纳总结。不定时更新。学习地址1.网站2.博客埋坑1.Android5.0以下View.getContext()强转Activity崩溃直接继承Activity的Activity构造出来的View.getContext()返回的是当前Activity。但是:当View的Activity是继承自AppCompatActivity,并且在5.
- android开发笔记之进程通信Messenger
hfreeman2008
android开发笔记android开发笔记messengerandroid
写在前面的话前面我写了一篇文章—android学习之remoteservice的aidl详解,讲到跨进程多线程通信,我们使用aidl技术来实现。但是平时我们大部分的应用可能只要要求跨进程通信,而不需要使用多线程,那么这时候,Messenger就是我们的一个非常好的选择。比起aidl来,Messenger实现更简单,并且不需要考虑线程安全的问题。我参考了文章:Android基于Message的进程间
- android开发笔记-知识点
哈丨吅
android开发
1:AndroidPermissiondenied(不允许连接Socket)错误原因是:需要访问到网络,所以,在AndroidManifest.xml中,需要进行如下配置:2:ListView滚动变黑解决方法ListView增加一个属性android:cacheColorHint="#00000000"3:Item用自己的背景盖住了Selector光标ListView增加一个属性:android:
- Android开发笔记: Android动态添加、删除控件
程序猿的杂货店
Android开发笔记android开发控件
此文章主要是将如何动态添加,删除控件1创建布局文件2代码实现动态添加,删除
- Android开发笔记之基础篇 ------ UI布局
大熊Sir
在Android开发的绝大部分场景里,我们都需要构建至少一个以上的UI界面用于与user的交互。UI界面本身其实只是静态的图片或者框架,但是通过对其的控制,可以实现几乎所有的用户使用效果,例如点击后高亮,点击后消失,左划删除单个条目等等。那么今天就来看看Android中关于UI布局的一些概念和知识。一、LinearLayoutVSRelativeLayoutVSFrameLayoutVSConst
- Android开发笔记之Log日志输出
飞机火车巴雷特
笔记
一、引言日志记录是将应用程序的操作和状态记录到辅助接口(例如文件,或者数据库,都可以)的过程。然而,软件开发人员并不十分重视日志记录。其实有用的日志可以为开发人员(特别是当有人必须调试/维护别人的代码时)在试图理解代码的作用时提供巨大帮助。一些开发人员说堆栈跟踪是人们应该需要的,但这与事实相去甚远。堆栈跟踪很棒,可以告诉您哪里出了什么问题,但它们无法告诉您最初是如何到达那里的。当然,您可以通过断点
- Android开发笔记
大小雪
android笔记
一、知识点1、Notification通知的创建流程1)创建一个NotificationManager,获取系统服务,getSystemService()方法;2)使用Builder构造器来创建Notification对象,设置通知的各种属性;3)NotificationChannel通知渠道,Android8.0引入了通知渠道,允许为要显示的每种通知类型创建用户可自定义的渠道;4)发送通知,no
- Android开发笔记——MVVM模式&Jetpack实现MVVM模式
Yang杰
Android开发学习笔记Androidandroid
Android开发笔记——MVVM模式&Jetpack实现的MVVM模式MVVM模式MVC、MVP和MVVMMVC概述特点MVP概述MVC和MVP的区别特点MVVM概述特点Jetpack实现MVVMModelViewViewModel在之前的学习中,我将Jetpack中使用最为频繁的几个架构组件都做了相关的学习和了解,但是,之前只是对每个组件分别进行学习,而如何在实际开发中学会熟练使用Jetpac
- Android开发笔记:适配器(Adapter)以及ListView和RecycleView的简单使用
Tai_Monster
Android开发笔记androidjavamvc
Android开发笔记:适配器(Adapter)以及ListView和RecycleView的简单使用在使用ListView和RecycleView之前,我们得先了解适配器的概念。适配器:具体来说,适配器Adapter是一个接口。官方文档中是这样描述的:AnAdapterobjectactsasabridgebetweenanAdapterViewandtheunderlyingdataforth
- Android开发笔记:用Jsoup简单获取网页的数据
Tai_Monster
Android开发笔记androidxmljava
Android开发笔记:用Jsoup简单获取网页的数据有时候我们在开发过程中,比如仿写一些app时,可能缺少相关的可用的接口给我们提供数据,这个时候据需要我们去网页去爬取一些数据。这个时候我们就可以使用一些开源库来帮助我们轻松地爬取数据。Jsop开源库:jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于
- Android开发笔记之Fragment的使用教程
目录何为碎片特点如何引入碎片静态引入动态加载碎片的通信活动和碎片间的通信碎片和活动间的通信碎片和碎片间的通信何为碎片官方文档中提到:Afragmentrepresentsamodularportionoftheuserinterfacewithinanactivity.Afragmenthasitsownlifecycle,receivesitsowninputevents,andyoucanad
- Android开发笔记XML数据解析方法及优缺点
目录何为XML数据如何解析XML数据1.Pull解析2.简单的Pull解析3.SAX解析何为XML数据XML指可扩展标记语言(eXtensibleMarkupLanguage)。可扩展标记语言(英语:ExtensibleMarkupLanguage,简称:XML)是一种标记语言,是从标准通用标记语言(SGML)中简化修改出来的。其最主要的功能就是为了方便数据的传输与交换。在Android开发中,我
- Android SeekBar在刷新使用中需要注意的问题
目录问题分析问题解决方法Android开发笔记:关于SeekBar在刷新使用中的一些问题问题今天在用Navigation在两个Fragment之间导航时发现了从第二个Fragment返回到第一个Fragment时SeekBar出现数据丢失和进度条不刷新的情况。具体Demo是在第一个Fragemnt中通过滑动条改变ViewModel中的数据,并在点击按钮后导航进入第二个Fragment,在第二个Fr
- [Android开发笔记]多渠道打包(动态替换包名、常量、资源文件等)
goweii
因项目需求,需生成多个具有不同的应用图标、应用名、启动图APP,并且可以被同时安装。之前使用过多渠道打包去给友盟生成不同的渠道包,觉得应该也可以实现上面的需求,所以在此记录一下。具体的配置在app:build.gradle中添加如下配置,注释比较全,就不过多介绍了android{...defaultConfig{applicationId"per.goweii.one"minSdkVersion1
- iOS开发者入门Android开发笔记(三)-调试工具Log
赵梦楠
前言笔者是一名iOS开发者,最近在学习Android开发。作为移动平台的两大阵营,iOS和Android开发既有想通之处,也有各自不同的特性。本系列文章,主要是从iOS开发者的角度,类比地去学习Android开发,记录下自己的一些心得体会。如果你也对Android开发感兴趣,并想入门学习。建议可以去看郭霖的《第一行代码》。笔者也是通过这本书来入门学习Android开发的,因此,本文的大部分知识,你
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据下载
duyi324
【原文链接:http://www.cnblogs.com/gis-luq/p/5858048.html】1、前言1.1、环境准备:ArcGISforDesktop10.4.1(10.2.1以上版本即可)ArcGISforServer10.4.1(10.2.1以上版本即可)PostgreSQL、MicrosoftSQLServer、或Oracle设置企业级地理数据库。1.2、发布具有同步能力的Fea
- 【Android开发笔记】证件相机,身份证及营业执照拍摄裁剪
Smartown
简介针对项目中的一个需求而开发的一个库,实现了身份证正反面、营业执照横版、竖版的拍摄和裁剪功能,现已开源在GitHub上,需要的同学直接clone到本地添加依赖即可使用。Githubhttps://github.com/xiaoowuu/CertificateCamera预览Demo演示身份证正面身份证反面营业执照-横版营业执照-竖版
- Android开发笔记
ZhaoWeihao
我最近在学校期末作业使用Kotlin语言做一个校园社区AndroidAPP,仍然在制作中。。。Github项目地址:https://github.com/zhaoweihaoChina/hnuplus这是我用记录一些我在做的时候需要记录的东西,用来以后翻看。也给需要的同学做个参考。Activity调用Fragment的公共方法首先创建一个接口publicinterfaceMyInterface{v
- [Android开发笔记]私有Maven仓库使用指南
goweii
简介我们在使用AndroidStudio开发安卓项目时,会引用到官方sdk或者他人的库,方法都是在module的build.gradle文件中添加如下代码:implementation'com.android.support:appcompat-v7:28.0.0'一行代码就可以把我们想使用的库引入到了项目中。然而一般情况下我们要想引入自己开发的库,则是将整个module导入项目,并在需要引用该m
- android开发笔记之Android Studio使用Glide
hfreeman2008
android开发笔记android开发androidstudioglide
Glide介绍AnimageloadingandcachinglibraryforAndroidfocusedonsmoothscrolling安卓上专注于平滑滑动的图片加载和缓存库。Glide有以下特点:1.注重list中的图片在scroll状态下的流畅性。2.可以展示视频图像,普通格式图片和GIF格式。3.默认网络请求使用的是httpurlconnection,同时支持自定义使用volley或
- android开发笔记之Android Studio运行UiAutomator
hfreeman2008
android开发笔记androidandroid开发androidstudiouiautomato
简历UiAutomator是android的一种自动化测试工具,其优点是可以对所有应用进行跨应用的操作自动化测试.uiautomator的实现是在AndroidStudio应用下的androidTest目录下:Demo第一步:在build.gradle文件中添加uiautomator://SetthisdependencytobuildandrunUIAutomatortestsandroidTe
- 二分查找排序算法
周凡杨
java二分查找排序算法折半
一:概念 二分查找又称
折半查找(
折半搜索/
二分搜索),优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而 查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表 分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步
- java中的BigDecimal
bijian1013
javaBigDecimal
在项目开发过程中出现精度丢失问题,查资料用BigDecimal解决,并发现如下这篇BigDecimal的解决问题的思路和方法很值得学习,特转载。
原文地址:http://blog.csdn.net/ugg/article/de
- Shell echo命令详解
daizj
echoshell
Shell echo命令
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:
echo string
您可以使用echo实现更复杂的输出格式控制。 1.显示普通字符串:
echo "It is a test"
这里的双引号完全可以省略,以下命令与上面实例效果一致:
echo Itis a test 2.显示转义
- Oracle DBA 简单操作
周凡杨
oracle dba sql
--执行次数多的SQL
select sql_text,executions from (
select sql_text,executions from v$sqlarea order by executions desc
) where rownum<81;
&nb
- 画图重绘
朱辉辉33
游戏
我第一次接触重绘是编写五子棋小游戏的时候,因为游戏里的棋盘是用线绘制的,而这些东西并不在系统自带的重绘里,所以在移动窗体时,棋盘并不会重绘出来。所以我们要重写系统的重绘方法。
在重写系统重绘方法时,我们要注意一定要调用父类的重绘方法,即加上super.paint(g),因为如果不调用父类的重绘方式,重写后会把父类的重绘覆盖掉,而父类的重绘方法是绘制画布,这样就导致我们
- 线程之初体验
西蜀石兰
线程
一直觉得多线程是学Java的一个分水岭,懂多线程才算入门。
之前看《编程思想》的多线程章节,看的云里雾里,知道线程类有哪几个方法,却依旧不知道线程到底是什么?书上都写线程是进程的模块,共享线程的资源,可是这跟多线程编程有毛线的关系,呜呜。。。
线程其实也是用户自定义的任务,不要过多的强调线程的属性,而忽略了线程最基本的属性。
你可以在线程类的run()方法中定义自己的任务,就跟正常的Ja
- linux集群互相免登陆配置
林鹤霄
linux
配置ssh免登陆
1、生成秘钥和公钥 ssh-keygen -t rsa
2、提示让你输入,什么都不输,三次回车之后会在~下面的.ssh文件夹中多出两个文件id_rsa 和 id_rsa.pub
其中id_rsa为秘钥,id_rsa.pub为公钥,使用公钥加密的数据只有私钥才能对这些数据解密 c
- mysql : Lock wait timeout exceeded; try restarting transaction
aigo
mysql
原文:http://www.cnblogs.com/freeliver54/archive/2010/09/30/1839042.html
原因是你使用的InnoDB 表类型的时候,
默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s,
因为有的锁等待超过了这个时间,所以抱错.
你可以把这个时间加长,或者优化存储
- Socket编程 基本的聊天实现。
alleni123
socket
public class Server
{
//用来存储所有连接上来的客户
private List<ServerThread> clients;
public static void main(String[] args)
{
Server s = new Server();
s.startServer(9988);
}
publi
- 多线程监听器事件模式(一个简单的例子)
百合不是茶
线程监听模式
多线程的事件监听器模式
监听器时间模式经常与多线程使用,在多线程中如何知道我的线程正在执行那什么内容,可以通过时间监听器模式得到
创建多线程的事件监听器模式 思路:
1, 创建线程并启动,在创建线程的位置设置一个标记
2,创建队
- spring InitializingBean接口
bijian1013
javaspring
spring的事务的TransactionTemplate,其源码如下:
public class TransactionTemplate extends DefaultTransactionDefinition implements TransactionOperations, InitializingBean{
...
}
TransactionTemplate继承了DefaultT
- Oracle中询表的权限被授予给了哪些用户
bijian1013
oracle数据库权限
Oracle查询表将权限赋给了哪些用户的SQL,以备查用。
select t.table_name as "表名",
t.grantee as "被授权的属组",
t.owner as "对象所在的属组"
- 【Struts2五】Struts2 参数传值
bit1129
struts2
Struts2中参数传值的3种情况
1.请求参数绑定到Action的实例字段上
2.Action将值传递到转发的视图上
3.Action将值传递到重定向的视图上
一、请求参数绑定到Action的实例字段上以及Action将值传递到转发的视图上
Struts可以自动将请求URL中的请求参数或者表单提交的参数绑定到Action定义的实例字段上,绑定的规则使用ognl表达式语言
- 【Kafka十四】关于auto.offset.reset[Q/A]
bit1129
kafka
I got serveral questions about auto.offset.reset. This configuration parameter governs how consumer read the message from Kafka when there is no initial offset in ZooKeeper or
- nginx gzip压缩配置
ronin47
nginx gzip 压缩范例
nginx gzip压缩配置 更多
0
nginx
gzip
配置
随着nginx的发展,越来越多的网站使用nginx,因此nginx的优化变得越来越重要,今天我们来看看nginx的gzip压缩到底是怎么压缩的呢?
gzip(GNU-ZIP)是一种压缩技术。经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用
- java-13.输入一个单向链表,输出该链表中倒数第 k 个节点
bylijinnan
java
two cursors.
Make the first cursor go K steps first.
/*
* 第 13 题:题目:输入一个单向链表,输出该链表中倒数第 k 个节点
*/
public void displayKthItemsBackWard(ListNode head,int k){
ListNode p1=head,p2=head;
- Spring源码学习-JdbcTemplate queryForObject
bylijinnan
javaspring
JdbcTemplate中有两个可能会混淆的queryForObject方法:
1.
Object queryForObject(String sql, Object[] args, Class requiredType)
2.
Object queryForObject(String sql, Object[] args, RowMapper rowMapper)
第1个方法是只查
- [冰川时代]在冰川时代,我们需要什么样的技术?
comsci
技术
看美国那边的气候情况....我有个感觉...是不是要进入小冰期了?
那么在小冰期里面...我们的户外活动肯定会出现很多问题...在室内呆着的情况会非常多...怎么在室内呆着而不发闷...怎么用最低的电力保证室内的温度.....这都需要技术手段...
&nb
- js 获取浏览器型号
cuityang
js浏览器
根据浏览器获取iphone和apk的下载地址
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" content="text/html"/>
<meta name=
- C# socks5详解 转
dalan_123
socketC#
http://www.cnblogs.com/zhujiechang/archive/2008/10/21/1316308.html 这里主要讲的是用.NET实现基于Socket5下面的代理协议进行客户端的通讯,Socket4的实现是类似的,注意的事,这里不是讲用C#实现一个代理服务器,因为实现一个代理服务器需要实现很多协议,头大,而且现在市面上有很多现成的代理服务器用,性能又好,
- 运维 Centos问题汇总
dcj3sjt126com
云主机
一、sh 脚本不执行的原因
sh脚本不执行的原因 只有2个
1.权限不够
2.sh脚本里路径没写完整。
二、解决You have new mail in /var/spool/mail/root
修改/usr/share/logwatch/default.conf/logwatch.conf配置文件
MailTo =
MailFrom
三、查询连接数
- Yii防注入攻击笔记
dcj3sjt126com
sqlWEB安全yii
网站表单有注入漏洞须对所有用户输入的内容进行个过滤和检查,可以使用正则表达式或者直接输入字符判断,大部分是只允许输入字母和数字的,其它字符度不允许;对于内容复杂表单的内容,应该对html和script的符号进行转义替换:尤其是<,>,',"",&这几个符号 这里有个转义对照表:
http://blog.csdn.net/xinzhu1990/articl
- MongoDB简介[一]
eksliang
mongodbMongoDB简介
MongoDB简介
转载请出自出处:http://eksliang.iteye.com/blog/2173288 1.1易于使用
MongoDB是一个面向文档的数据库,而不是关系型数据库。与关系型数据库相比,面向文档的数据库不再有行的概念,取而代之的是更为灵活的“文档”模型。
另外,不
- zookeeper windows 入门安装和测试
greemranqq
zookeeper安装分布式
一、序言
以下是我对zookeeper 的一些理解: zookeeper 作为一个服务注册信息存储的管理工具,好吧,这样说得很抽象,我们举个“栗子”。
栗子1号:
假设我是一家KTV的老板,我同时拥有5家KTV,我肯定得时刻监视
- Spring之使用事务缘由(2-注解实现)
ihuning
spring
Spring事务注解实现
1. 依赖包:
1.1 spring包:
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.
- iOS App Launch Option
啸笑天
option
iOS 程序启动时总会调用application:didFinishLaunchingWithOptions:,其中第二个参数launchOptions为NSDictionary类型的对象,里面存储有此程序启动的原因。
launchOptions中的可能键值见UIApplication Class Reference的Launch Options Keys节 。
1、若用户直接
- jdk与jre的区别(_)
macroli
javajvmjdk
简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
JDK就是Java Development Kit JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 如果安装了JDK,会发同你
- Updates were rejected because the tip of your current branch is behind
qiaolevip
学习永无止境每天进步一点点众观千象git
$ git push joe prod-2295-1
To
[email protected]:joe.le/dr-frontend.git
! [rejected] prod-2295-1 -> prod-2295-1 (non-fast-forward)
error: failed to push some refs to '
[email protected]
- [一起学Hive]之十四-Hive的元数据表结构详解
superlxw1234
hivehive元数据结构
关键字:Hive元数据、Hive元数据表结构
之前在 “[一起学Hive]之一–Hive概述,Hive是什么”中介绍过,Hive自己维护了一套元数据,用户通过HQL查询时候,Hive首先需要结合元数据,将HQL翻译成MapReduce去执行。
本文介绍一下Hive元数据中重要的一些表结构及用途,以Hive0.13为例。
文章最后面,会以一个示例来全面了解一下,
- Spring 3.2.14,4.1.7,4.2.RC2发布
wiselyman
Spring 3
Spring 3.2.14、4.1.7及4.2.RC2于6月30日发布。
其中Spring 3.2.1是一个维护版本(维护周期到2016-12-31截止),后续会继续根据需求和bug发布维护版本。此时,Spring官方强烈建议升级Spring框架至4.1.7 或者将要发布的4.2 。
其中Spring 4.1.7主要包含这些更新内容。