- 关于MANIFEST.MF的理解
weixin_34242658
开发工具java操作系统
打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录,这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息.在Java平台中,Manifest资源配置文件是JAR档案文件中包含的特殊文件。Manifest文件被用来定义扩展或档案打包相关数据。Manifest文件是一个元数据文件,它包含了不同部分中的名/值对数据。如果一个JAR文件
- uniapp发布安卓app流程
panda4919
uni-app
1.登录hbuilder2.打开项目根目录中的manifest.json配置文件,在基础配置面板中,获取uni-app应用标识,并填写应用名称:3.切换到App图标配置面板,点击浏览按钮,选择合适的图片之后,再点击自动生成所有图标并替换即可4.点击菜单栏上的发行->原生App-云打包:5.勾选打包配置6.在控制台中查看打包的进度信息:7.点击链接下载apk的安装包,并安装到Android手机中查看
- Flutter:BLE蓝牙开发
杨先生_
Flutterflutter
说明:使用flutter_blue_plus插件实现低功耗蓝牙开发。一、添加蓝牙权限:1.Android网络权限(工程/android/app/src/main/AndroidManifest.xml):2.iOS蓝牙权限(工程/ios/Runner/Info.plist): ... NSBluetoothAlwaysUsageDescription NeedBLEpermission N
- 开发者视角:一键拉起与快速安装的巧妙运用
tongjiwenzhang
携带参数安装信息可视化大数据androidios
Apptrace技术集成方案SDK集成基础Android集成配置//build.gradle(Module)dependencies{implementation'com.apptrace.sdk:core:3.2.1'implementation'com.apptrace.sdk:deeplink:2.0.0'}//AndroidManifest.xmliOS集成配置//Podfilepod'A
- uniappx 安卓app项目本地打包运行,腾讯地图报错:‘鉴权失败,请检查你的key‘
夏木。。。
前端uniappx
根目录下添加AndroidManifest.xml文件,manifest.json文件中添加:"app":{"distribute":{"android":{"permissions":["",""],},"sdkConfigs":{"maps":{"qqmap":{"appkey_android":"腾讯地图key"}}}}},如此操作之后,重新自定义调试基座,运行模拟器,选择自定义基座:运行成
- GDPU移动应用开发(安卓)期末考试复习资料
第一部分一、选择题应用的基本构建块是:A.ActivityB.FragmentC.ServiceD.Intent答案:A.Activity下列哪个不是AndroidManifest.xml文件的主要用途?A.声明应用权限B.声明应用组件C.定义应用的图标和名称D.编写应用的业务逻辑答案:D.编写应用的业务逻辑在Android中、用于存储持久化数据的SQLite数据库、默认存储在哪个目录下?A./s
- IP变更后k8s集群环境恢复方法总结
Herry_644280825
kubernetes容器云原生
在实际工作中,已安装部署的k8s集群环境,可能由于办公场所搬迁等原因导致网络环境变化,原k8s集群环境不可用,重新安装比较麻烦,可参考下述方法,恢复环境运行。1.修改hostsip信息,配置新ip域映射。/etc/hosts2.检查k8s配置,配置新ip/etc/kubernetes/kubelet.conf3.manifests目录下配置ip更新/etc/kubernetes/manifests
- Rust基于tokio的websocket群聊
昊天0
rustwebsocket开发语言
原文:Rust基于tokio的websocket群聊依赖[package]name="chat"version="0.1.0"edition="2021"#Seemorekeysandtheirdefinitionsathttps://doc.rust-lang.org/cargo/reference/manifest.html[dependencies]tokio={version="1.23"
- 敏捷项目的变更管理
workflower
软件工程软件需求需求分析敏捷流程开发语言
敏捷项目的结构为响应范围变化而特别设计,甚至是欢迎范围变化。敏捷软件开发的12条基本原则之--就是“即使到了开发后期,也欢迎改变需求。敏捷过程利用变化为客户创造竞争优势”(参见www.agilemanifesto.org/principles.html)。这一原则承认了变化是一个不可避免的、必要的且很有价值的事实。接受变化有助于满足不断变化的业务目标及其优先级,同时能适应人为计划的限制及预见性不足
- 91.p9p.co ev.php下载,恶意软件分析 & URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析...
山江小力
91.p9p.coev.php下载
AndroidManifest.xmlK=}u4>RwzMYPwrv_KN0F^{-v?Oxs#N;vs;assets/Cc/cc.png9UNZ00)A,2XgE(XvUi'b8F,ZEk7al(LGp%8O$9MyGV;Ic#keh4gZJUuvPVkXrk@^_#"Dc0?X9i0I^..J)ma]I0DUMKL4w{*eYX=u=#33=u5VUqRf[[=We!vrK~bM+S=G[:R
- 开发者视角:一键拉起功能解析
tongjiwenzhang
经验分享携带参数安装大数据
一、Apptrace的"魔法跳转"是怎么工作的?说白了就是让用户点击某个链接/按钮时,能精准跳转到App内指定页面(比如活动页/商品页),而不是冷启动到首页。这玩意儿就像给你的App装了个GPS定位系统。二、核心实现套路1.底层协议支持//AndroidManifest.xml配置示例2.跳转链路处理Apptrace通常会搞个中央路由器:publicclassDeepLinkRouter{publ
- MX_Player_Pro_专业精简版AC3/DTS/EAC3 By.SOLDIER-就要应用网91apps.cn
syx594
MX_Player_Pro1.32.8_专业精简版_AC3/DTS/EAC3MXPlayer是安卓市场功能最强大的视频播放器支持几乎所有的音视频文件,强力的硬件加速和多种字幕支持。优化说明:不需要Root或LuckyPatcher或GooglePlayModded;禁用/删除不需要的权限及服务;优化和压缩对齐的图形以及清理不必要的资源,以实现快速加载;从Android.manifest中删除了广告
- docker-compose和Kubernetes (K8s)
思静鱼
虚拟化技术docker和k8sdockerkubernetes容器
DockerCompose和Kubernetes(K8s)都是容器编排工具,但它们的使用场景、功能深度和生态能力有明显不同。下面为你系统对比两者,并解释Kubernetes的优势。一、基本定义对比特性DockerComposeKubernetes(K8s)定义方式docker-compose.yml文件YAMLmanifests(多种资源文件)启动命令docker-composeup-dkubec
- uniapp通过百度地图API获取手机定位及地址
骨子里的偏爱
uniapp开发vue前端uni-appdubbo百度地图地图地址
uniapp通过百度地图API获取手机定位及地址先获取手机的定位(WGS84)坐标,然后转为BD09坐标,然后通过逆地址编码获取到地址:完整代码如下:步骤一:在manifest.json中加入百度地图的ak,并且勾选上步骤二:在pages.json中加入扩展的信息:步骤三:完整的代码如下:获取位置当前位置(WGS84):{{location.latitude}},{{location.longit
- jar包的概念及作用
Azoner
jar
1.简单来说,jar包是对写好的类进行了打包。我们可以通过将jar包放到lib目录下来使用这些jar包中的类、属性和方法。2.专业解释,JAR文件是JavaArchiveFile-java档案文件的简称,是与平台无关的文件格式,基于zip文件格式将许多文件合成一个压缩文件.jar,区别是比zip多了一个包含了一个META-INF/MANIFEST.MF文件,这个文件是在生成JAR文件的时候自动创建
- uniApp配置代理devServer 解决页面跳转跨域
weixin_39875208
httphtmljavascript
manifest.json文件中添加"devServer":{"https":false,"port":9100,"proxy":{"/api":{"target":"http://aaa","changeOrigin":true,"secure":false,"pathRewrite":{"^/api":"/"}}}}}
- android webview输入框_Android WebView 软键盘挡住输入框
weixin_39681621
androidwebview输入框
解决方法一:在所在的Activity中加入getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE|WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);解决方法二:1.调整AndroidManifest.xml找到对应的Activity,加入以
- uniapp 腾讯地图服务
注册登录腾讯位置服务官网应用管理-创建应用后,创建key配额管理-设置key额度与账户额度manifest配置,把key填入web配置
- 推荐使用AdGuard MV3扩展:新一代广告拦截利器
推荐使用AdGuardMV3扩展:新一代广告拦截利器去发现同类优质开源项目:https://gitcode.com/在互联网的世界里,广告无处不在,而AdGuardMV3扩展是您解决这一问题的有力工具。它是专为应对Chrome浏览器新推出的ManifestV3框架设计的广告拦截插件,即便在严格的限制下,也能提供出色的广告屏蔽效果。项目介绍AdGuardMV3扩展是一款原型产品,旨在为用户提供与旧版
- 安卓android原生数据打包成.aar
浮生若梦l
android前端
需要修改几处地方1.修改build.grandle文件//applyplugin:'com.android.application'修改成applyplugin:'com.android.library'删除applicationId2.修改AndroidManifest.xml文件//注释掉入口文件-->-->-->-->//删除application中的属性icon,label3.makemo
- HarmonyOS 5中UniApp的调试步骤
在HarmonyOS5中调试UniApp应用的完整步骤如下,涵盖环境配置、设备连接及调试方法:一、环境准备开发工具安装HBuilderX4.64+(需启用鸿蒙插件)可选安装DevEcoStudio5.0.3+(用于真机调试)配置Node.js≥18.x:npminstall-g@dcloudio/uni-cli#安装UniAppCLI2.项目配置在manifest.json声明鸿蒙平台:"
- 实现篇:手把手打造一个番茄时钟
村头的猫
前端技术实现javascript前端htmlcss
文章目录第一步:明确需求第二步:拆解应用功能第三步:代码实现index.html文件styles.css文件script.js文件ManifestFile(manifest.json文件)ServiceWorker(sw.js文件)使用说明功能特点近期文章:Vue3响应式原理那些事实现篇:二叉树遍历收藏版Vue3开发常见性能问题知多少Vue3组件常见通信方式你了解多少?实现篇:LRU算法的几种实现
- UniApp组件封装,2025年最新HarmonyOS鸿蒙模块化开发项目式教程
程序员小刘
harmonyosuni-app华为
一、环境配置与前置条件开发工具要求HBuilderX4.64+(鸿蒙插件已预装)DevEcoStudio5.0.3.400+(真机调试必备)鸿蒙离线SDK(通过HBuilderX导入,每个项目独立配置)项目初始化#创建Vue3项目(鸿蒙仅支持Vue3)npxdegitdcloudio/uni-preset-vue#vite-tsmy-project在manifest.json中声明鸿蒙支持:
- uniapp开发小程序vendor.js 过大
烂笔头儿@
uni-app小程序
在使用uniapp,开发微信小程序的时候,由于vendor.js太大导致无法打包,在网上找了一些办法最后实现了压缩话不多说直接上代码首先在manifest.json文件中的mp-weixin中添加"optimization":{"subPackages":true},"mp-weixin":{"appid":"","setting":{"urlCheck":false},"optimization
- 基于UniApp开发HarmonyOS 5.0鸿蒙汽车应用的指南
一、开发环境配置1.基础工具(1)DevEcoStudio5.0.3.400+:内置鸿蒙模拟器及JSSDK工具链(2)HBuilderX4.22+(Alpha):支持鸿蒙跨平台编译2.项目初始化unicreate-pharmonyoscar-app#创建鸿蒙汽车应用项目(1)修改manifest.json配置鸿蒙参数:"harmonyos":{"package":"com.example.
- 在uniapp中为特定iOS页面设置横屏不生效问题解决
node.js
在UniApp中设置特定iOS页面横屏时,可能会遇到设置不生效的问题。通常,这个问题可能与页面的设置、配置文件或iOS系统的限制有关。以下是几种常见的解决方案:1.检查manifest.json配置在manifest.json文件中,你需要确保已经正确配置了页面的横屏设置。具体步骤如下:打开manifest.json文件找到iOS配置部分确保设置了orientation字段为landscape,如
- 为什么 Docker 镜像这么高效?一文揭示技术背后的秘密!
TravisBytes
dockerdockerjava容器运维开发语言自动化人工智能
目录一、什么是镜像(Image)1.1定义二、Docker镜像原理2.1分层(Layering)2.2写时复制(Copy-on-Write,COW)2.3联合挂载(UnionMount/UnionFS)2.4内容寻址(ContentAddressable)三、Docker镜像关键概念3.1Registry3.2Repository3.3Manifest3.4Image3.5Layer3.6Dock
- PWA 的背景以及实现方式
超级土豆粉
前端技术沉淀指南前端webapp
PWA的背景以及实现方式目录PWA的背景以及实现方式一、PWA的背景二、PWA的核心特性三、PWA的实现方式1.添加WebAppManifest2.注册ServiceWorker3.使用HTTPS4.响应式设计5.支持推送通知(可选)四、结语一、PWA的背景随着移动互联网的普及,用户对应用体验的要求越来越高。传统的Web应用虽然具备跨平台、无需安装、易于更新等优点,但在性能、离线能力、推送通知等方
- android 页面跳转代码
wu_android
androidjava
Activity跳转页面代码Intentintent=newIntent();intent.setClass(MainActivity.this,activity_second.class);startActivity(intent);其中activity_second为要跳转的页面要在AndroidManifest.xml写activity,不然会报错例如>其中"com.example.repo
- 使用Vulkan技术在Android上提升游戏画质
ElainaQAQ
android游戏microsoft
关于Vulkan技术在Android上提升游戏画质文章目录关于Vulkan技术在Android上提升游戏画质Vulkan的优势1.更高的性能代码示例:批处理命令2.多线程支持代码示例:多线程命令记录3.更好的内存管理代码示例:显式内存分配实际应用案例成功案例分析Android系统中的Vulkan支持检查设备支持配置AndroidManifest提升游戏画质的技术高动态范围成像(HDR)实现示例物理
- 解读Servlet原理篇二---GenericServlet与HttpServlet
周凡杨
javaHttpServlet源理GenericService源码
在上一篇《解读Servlet原理篇一》中提到,要实现javax.servlet.Servlet接口(即写自己的Servlet应用),你可以写一个继承自javax.servlet.GenericServletr的generic Servlet ,也可以写一个继承自java.servlet.http.HttpServlet的HTTP Servlet(这就是为什么我们自定义的Servlet通常是exte
- MySQL性能优化
bijian1013
数据库mysql
性能优化是通过某些有效的方法来提高MySQL的运行速度,减少占用的磁盘空间。性能优化包含很多方面,例如优化查询速度,优化更新速度和优化MySQL服务器等。本文介绍方法的主要有:
a.优化查询
b.优化数据库结构
- ThreadPool定时重试
dai_lm
javaThreadPoolthreadtimertimertask
项目需要当某事件触发时,执行http请求任务,失败时需要有重试机制,并根据失败次数的增加,重试间隔也相应增加,任务可能并发。
由于是耗时任务,首先考虑的就是用线程来实现,并且为了节约资源,因而选择线程池。
为了解决不定间隔的重试,选择Timer和TimerTask来完成
package threadpool;
public class ThreadPoolTest {
- Oracle 查看数据库的连接情况
周凡杨
sqloracle 连接
首先要说的是,不同版本数据库提供的系统表会有不同,你可以根据数据字典查看该版本数据库所提供的表。
select * from dict where table_name like '%SESSION%';
就可以查出一些表,然后根据这些表就可以获得会话信息
select sid,serial#,status,username,schemaname,osuser,terminal,ma
- 类的继承
朱辉辉33
java
类的继承可以提高代码的重用行,减少冗余代码;还能提高代码的扩展性。Java继承的关键字是extends
格式:public class 类名(子类)extends 类名(父类){ }
子类可以继承到父类所有的属性和普通方法,但不能继承构造方法。且子类可以直接使用父类的public和
protected属性,但要使用private属性仍需通过调用。
子类的方法可以重写,但必须和父类的返回值类
- android 悬浮窗特效
肆无忌惮_
android
最近在开发项目的时候需要做一个悬浮层的动画,类似于支付宝掉钱动画。但是区别在于,需求是浮出一个窗口,之后边缩放边位移至屏幕右下角标签处。效果图如下:
一开始考虑用自定义View来做。后来发现开线程让其移动很卡,ListView+动画也没法精确定位到目标点。
后来想利用Dialog的dismiss动画来完成。
自定义一个Dialog后,在styl
- hadoop伪分布式搭建
林鹤霄
hadoop
要修改4个文件 1: vim hadoop-env.sh 第九行 2: vim core-site.xml <configuration> &n
- gdb调试命令
aigo
gdb
原文:http://blog.csdn.net/hanchaoman/article/details/5517362
一、GDB常用命令简介
r run 运行.程序还没有运行前使用 c cuntinue 
- Socket编程的HelloWorld实例
alleni123
socket
public class Client
{
public static void main(String[] args)
{
Client c=new Client();
c.receiveMessage();
}
public void receiveMessage(){
Socket s=null;
BufferedRea
- 线程同步和异步
百合不是茶
线程同步异步
多线程和同步 : 如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法
多线程和异步:多线程可以做不同的事情,涉及到线程通知
&
- JSP中文乱码分析
bijian1013
javajsp中文乱码
在JSP的开发过程中,经常出现中文乱码的问题。
首先了解一下Java中文问题的由来:
Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,
- js实现页面跳转重定向的几种方式
bijian1013
JavaScript重定向
js实现页面跳转重定向有如下几种方式:
一.window.location.href
<script language="javascript"type="text/javascript">
window.location.href="http://www.baidu.c
- 【Struts2三】Struts2 Action转发类型
bit1129
struts2
在【Struts2一】 Struts Hello World http://bit1129.iteye.com/blog/2109365中配置了一个简单的Action,配置如下
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configurat
- 【HBase十一】Java API操作HBase
bit1129
hbase
Admin类的主要方法注释:
1. 创建表
/**
* Creates a new table. Synchronous operation.
*
* @param desc table descriptor for table
* @throws IllegalArgumentException if the table name is res
- nginx gzip
ronin47
nginx gzip
Nginx GZip 压缩
Nginx GZip 模块文档详见:http://wiki.nginx.org/HttpGzipModule
常用配置片段如下:
gzip on; gzip_comp_level 2; # 压缩比例,比例越大,压缩时间越长。默认是1 gzip_types text/css text/javascript; # 哪些文件可以被压缩 gzip_disable &q
- java-7.微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如 h1 , h2 ,判断这俩个链表是否相交
bylijinnan
java
public class LinkListTest {
/**
* we deal with two main missions:
*
* A.
* 1.we create two joined-List(both have no loop)
* 2.whether list1 and list2 join
* 3.print the join
- Spring源码学习-JdbcTemplate batchUpdate批量操作
bylijinnan
javaspring
Spring JdbcTemplate的batch操作最后还是利用了JDBC提供的方法,Spring只是做了一下改造和封装
JDBC的batch操作:
String sql = "INSERT INTO CUSTOMER " +
"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";
- [JWFD开源工作流]大规模拓扑矩阵存储结构最新进展
comsci
工作流
生成和创建类已经完成,构造一个100万个元素的矩阵模型,存储空间只有11M大,请大家参考我在博客园上面的文档"构造下一代工作流存储结构的尝试",更加相信的设计和代码将陆续推出.........
竞争对手的能力也很强.......,我相信..你们一定能够先于我们推出大规模拓扑扫描和分析系统的....
- base64编码和url编码
cuityang
base64url
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
- web应用集群Session保持
dalan_123
session
关于使用 memcached 或redis 存储 session ,以及使用 terracotta 服务器共享。建议使用 redis,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富,不只是缓存 session,还可以做其他用途,一举几得啊。1、使用 filter 方法存储这种方法比较推荐,因为它的服务器使用范围比较多,不仅限于tomcat ,而且实现的原理比较简
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
dcj3sjt126com
数据库
public function getMinLimit () { $sql = "..."; $result = yii::app()->db->createCo
- solr StatsComponent(聚合统计)
eksliang
solr聚合查询solr stats
StatsComponent
转载请出自出处:http://eksliang.iteye.com/blog/2169134
http://eksliang.iteye.com/ 一、概述
Solr可以利用StatsComponent 实现数据库的聚合统计查询,也就是min、max、avg、count、sum的功能
二、参数
- 百度一道面试题
greemranqq
位运算百度面试寻找奇数算法bitmap 算法
那天看朋友提了一个百度面试的题目:怎么找出{1,1,2,3,3,4,4,4,5,5,5,5} 找出出现次数为奇数的数字.
我这里复制的是原话,当然顺序是不一定的,很多拿到题目第一反应就是用map,当然可以解决,但是效率不高。
还有人觉得应该用算法xxx,我是没想到用啥算法好...!
还有觉得应该先排序...
还有觉
- Spring之在开发中使用SpringJDBC
ihuning
spring
在实际开发中使用SpringJDBC有两种方式:
1. 在Dao中添加属性JdbcTemplate并用Spring注入;
JdbcTemplate类被设计成为线程安全的,所以可以在IOC 容器中声明它的单个实例,并将这个实例注入到所有的 DAO 实例中。JdbcTemplate也利用了Java 1.5 的特定(自动装箱,泛型,可变长度
- JSON API 1.0 核心开发者自述 | 你所不知道的那些技术细节
justjavac
json
2013年5月,Yehuda Katz 完成了JSON API(英文,中文) 技术规范的初稿。事情就发生在 RailsConf 之后,在那次会议上他和 Steve Klabnik 就 JSON 雏形的技术细节相聊甚欢。在沟通单一 Rails 服务器库—— ActiveModel::Serializers 和单一 JavaScript 客户端库——&
- 网站项目建设流程概述
macroli
工作
一.概念
网站项目管理就是根据特定的规范、在预算范围内、按时完成的网站开发任务。
二.需求分析
项目立项
我们接到客户的业务咨询,经过双方不断的接洽和了解,并通过基本的可行性讨论够,初步达成制作协议,这时就需要将项目立项。较好的做法是成立一个专门的项目小组,小组成员包括:项目经理,网页设计,程序员,测试员,编辑/文档等必须人员。项目实行项目经理制。
客户的需求说明书
第一步是需
- AngularJs 三目运算 表达式判断
qiaolevip
每天进步一点点学习永无止境众观千象AngularJS
事件回顾:由于需要修改同一个模板,里面包含2个不同的内容,第一个里面使用的时间差和第二个里面名称不一样,其他过滤器,内容都大同小异。希望杜绝If这样比较傻的来判断if-show or not,继续追究其源码。
var b = "{{",
a = "}}";
this.startSymbol = function(a) {
- Spark算子:统计RDD分区中的元素及数量
superlxw1234
sparkspark算子Spark RDD分区元素
关键字:Spark算子、Spark RDD分区、Spark RDD分区元素数量
Spark RDD是被分区的,在生成RDD时候,一般可以指定分区的数量,如果不指定分区数量,当RDD从集合创建时候,则默认为该程序所分配到的资源的CPU核数,如果是从HDFS文件创建,默认为文件的Block数。
可以利用RDD的mapPartitionsWithInd
- Spring 3.2.x将于2016年12月31日停止支持
wiselyman
Spring 3
Spring 团队公布在2016年12月31日停止对Spring Framework 3.2.x(包含tomcat 6.x)的支持。在此之前spring团队将持续发布3.2.x的维护版本。
请大家及时准备及时升级到Spring
- fis纯前端解决方案fis-pure
zccst
JavaScript
作者:zccst
FIS通过插件扩展可以完美的支持模块化的前端开发方案,我们通过FIS的二次封装能力,封装了一个功能完备的纯前端模块化方案pure。
1,fis-pure的安装
$ fis install -g fis-pure
$ pure -v
0.1.4
2,下载demo到本地
git clone https://github.com/hefangshi/f