-
hybird
2020-10-30 18:50:16混合开发 什么是混合开发 ...目标 把web打包成app 开发方式 web app 网页开发 ...优点:开发周期短,跨平台 缺点:性能一般,默认无法调取设备信息(麦克风,摄像头,通讯录) 场景:手机淘宝,京东,网易 ...混合开发
什么是混合开发
前端开发(html+css+js)也可以访问设备信息(麦克风,摄像头,通讯录),也可以开发手机app
目标
把web打包成app
开发方式
web app
网页开发
- 技术: html5 + css + js(库,框架) 编写移动端
- 优点:开发周期短,跨平台
- 缺点:性能一般,默认无法调取设备信息(麦克风,摄像头,通讯录)
- 场景:手机淘宝,京东,网易
native app
原生手机应用开发、客户端开发
- 技术:java -> android object-c -> ios
- 优点:性能高,默认就可以调取设备信息
- 缺点:开发周期长(迭代慢),团队规模大
hybird app
混合开发,用H5搭建webapp,通过第三方提供的原生(native)库,访问设备信息,之后打包成app
native库 从属 组合方式 输出 cordova adobe H5+cordova+phonegap app wx_jssdk 腾讯 H5+wx_jssdk,开发出来的是网页 web H5+ Dcloud hbuilder + mui app reactNative 脸书 react + reactNative app ionic 谷歌民间 angular + ionic app weex 阿里 vue + weex app 跨端开发
前端希望一次开发,到处使用,浏览器里面使用、手机系统里面使用、微信里面使用、支付宝里面使用、扫码使用(快应用)
框架 从属 组合方式 输出 uniapp Dcloud vue+uniapp+hbuilderX app/web/小程序(all) taro 京东 react+taro app/web/小程序(all) mpvue 不详 vue + mpvue + weex web/小程序(all) kbone 腾讯 vue|react|angular + kbone web/小程序(微信) PhoneGap
官网 是个桌面软件,第三方的打包工具,可以搭建开发环境,内部提供 cordova库(访问设备信息),其他第三方的打包工具: wap2app、 uni-app,
安装
pc端:phonegap desktop,
搭建开发环境, 测试
手端:安卓商城搜索 phonegap developer,ios用户安装包老师copy给你们
用来测试
保证手机和电脑要在同一个网段(保证手机和电脑要在同一个网段(连了同一个wifi,同一路由)
搭建项目环境
- 打开pc phonegap
-
- newproject 新建项目
- helloworld 选择模板
- localpath: 选择项目位置
- name:项目名称|项目目录
- ID:添写域名
- create project 创建项目
- 打开手机端的phonegap,链接 pc端phonegap提供ip
问题: phonegap pc端软件打开卡死,创建项目卡死
解决:phonegap命令行创建项目
npm install -g phonegap@latest npm install cordova -g //安装cordova 框架 phonegap serve //运行
开发
使用喜欢的开发工具,打开创建好的项目目录(react|vue),调用cordova的api
打包到phonegap环境下的www目录,手机端会热刷新
打包到www下面的vue或者react,没有引入cordova的,需要手动引入
白屏问题:vue-cli4打包后index.html引入资源时
<script src="js/xx.."
,不可以访问根"/",不然js加载失败,#app的控制失效打包
命令行打包
npm i cordova -g cordova build ios | cordova build android (ipa/apk) //需要安装个平台jdk环境
在线打包
利用第三方在线生成app办法,完成打包,打包后内容就在线上
- 代码传到git仓库
- new repository
- git clone 仓库
- 把phonegap项目目录 拷贝到 仓库
- git add .
- git commit -m ‘描述信息’
- git push/wan9alex/14.lo…
- phonegap 在线打包
- 登录 adobe id
- new App
- 复制git地址
- pull from git…
- ready to build
大文件限定
命令行: 配置一次
git config --global http.postBuffer 1048576000
本地仓库目录:.git/config 添加
[http] postBuffer = 524288000
然后把缓存清除
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch <file/dir>' HEAD
cordova
- Battery Status 电池信息
Camera 照相机 - Contacts 通讯录
- Device Info 设备信息
- Device Motion (accelerometer) 重力感应
- Device Orientation (compass) 罗盘(指南针)
- Dialogs (notification) 模态框
- File 文件操作(增删改查)
- File Transfer 上传
- Geolocation 地理定位
- Globalization 全球化
- InAppBrowser 在app内部开启新窗口
- Media Capture 采集
- Network Information 网络状态
- Splash Screen 欢迎屏幕
- Status Bar 状态栏
- Whitelist 白名单
- Vibration 震动
vue+cordova
指定vue打包位置到phonegap的www
//修改 vue-cli4 下面 public/index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <title><%= htmlWebpackPlugin.options.title %></title> </head> <body> <div id="app"></div> <script src="cordova.js" type="text/javascript"></script> <!-- built files will be auto injected --> </body> </html>
//配置webpack cli4 //vue.config.js module.exports = { outputDir: '../仓库/www', publicPath: process.env.NODE_ENV === 'production' ? './' : '/' } //package.json 打包时 --no-clean 不清除dist [可选] { "scripts": { "build": "vue-cli-service build --no-clean" }, } //cli2 可配置保存自动打包 //package.json nodemon监听src完成修改-e指定文件后,自动打包 "scripts": { "cordova":"nodemon --watch src -e html,vue,js,less build/build.js", }, //build/build.js 不清除dist 注释 //rm(.. // if (err) throw err //config/index.js { build: { // 参考模板 输出到目标 index: path.resolve(__dirname, '../仓库/www'), // Paths assetsRoot: path.resolve(__dirname, '../仓库'), }
微信公众号
特点
- 可以实时推送一些信息
- 利用微信推广个人(订阅号),企业(企业号)
- 微信一些基本功能(摇一摇周边,投票,微信小店,微信支付)
- 调取设备信息
- 默认无需编码(商务,业务人员),除非要定制(公众号开发)
开通
公众平台->注册->留邮箱1->留个微信
管理
wx_jssdk
微信网页开发,利用jssdk提供的api访问手机设备信息,另外还提供一些微信的业务功能,UI是中文习惯,使用微信jssdk是条件的
条件
- 真实的域名,端口
443
- 开发出来的是网页
- 通过腾讯的产品进入
- jssdk是在线包,需要认证才可以链接使用所有功能
配置
- 搞个服务器支持443端口
- 双端适配(百度云服务端,微信端)
- 使用jssdk的API
部署百度云
申请账号
去 百度云 申请账号,登录(百度账号可以直接登录)-> 控制台 ->余额充值100
购买空间
计算->应用引擎BAE->创建应用(仓库) ->创建环境(服务和域名)
配置环境
让版本管理器每次有上传切换到最新版本:环境-》设置-》自动发布打开
代码上传
SVN:右键SVN-checkout 拉取仓库到本地 -> 开发 -> svn-commit -> 开发 -> svn-commit
需要清空保存SVN密码
找到: C:\Users\你的用户名\AppData\Roaming\Subversion\auth
清空当前目录所有
GIT: git clone 拉取仓库作为项目目录-> 开发 -> git add . -> git commit -m xxx -> git push
数据库
购买: 数据库-》RDS|mongodb->创建实例->选择库-》支付
配置:
- 数据库->rds->允许公网访问
- 数据库->账号管理->创建账号|创建库
关联到应用:为了让百度的应用可以访问数据库
- 计算->BAE->环境-》设置->创建关联->选择你创建的rds|monodb
访问
php:
$db=@mysqli_connect('mysql公网地址', 'root', 'root123') or @mysqli_connect('localhost', 'root', '');
node:
let mysql = require('mysql'); var connection = mysql.createConnection({ host : '网络连接 域名',//主机名 user : 'rds配置>账号管理>你创建的账号',//用户 password : 'rds配置>账号管理>你创建的密码',//密码 database : 'rds配置>数据库管理>你创建的库'//库名 port: 网络连接 端口 });
微信公众平台
为了做双端适配,需要在微信公众平台加入一些配置,允许百度服务器可以抓取jsssdk
申请平台账号
进入微信公众平台,注册->订阅号(个人)
双端适配
百度服务端
//提供配置好的文件 上传到服务器 //wx_sample.php 后台验证 define("TOKEN", "bulala"); //hello world 示例代码 给代码加入开发秘钥 //获取到文件 //wx_sample.php 百度下载到 的校验文件 //hello world 示例代码 //公众平台账号-》开发->开发者工具->开发者文档(API)->微信网页开发->微信js-sdk说明文档->拉到最后 // https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
微信端
先登录微信公众管理平台,配置token和开发秘钥,指向百度服务里面的token和开发秘钥
方案1:
正式号,实际开发会用到,需要平台账号要经过认证,没有认证, 部分API可用
- 拿到开发秘钥: 开发->基本配置
- 设置校验文件位置: 开发->基本配置->服务器配置->url:
http://uncle9-1847239832.bceapp.com/php/wx_sample.php
->token:自定义与wx_sample对应
->随机生成key(一旦生成,请快速提交) - 设置安全域名: 公众号设置->功能设置->JS接口安全域名->填入 百度域名(不含http)-》下载MP_verify_IrzmAOk81zl6E0V3.txt上传至域名下与wx_sample同位置
方案2: 测试号
所有的API可用,但是限于开发和学习,只有管理员和部分信任的微信账号可访问
- 生成临时的测试号,通过测试号生成开发秘钥
- 公众平台->开发者工具->公众平台测试账号->获取测试秘钥-》填写到hello示例代码>sample.php里面(yourAppID,yourAppSecret)
- 设置校验文件位置
http://xx.baidu域名 .com/你指定的目录/wx_sample.php token: wx_sample.php里面的token
- 设置安全域名
xx.baidu域名 .com //不要加http
调试
线上测试百度域名,生成二维码,手机扫码测试
//失败了 {errMsg:'config,fail'} //成功 {errMsg:'config,ok'} //解决 检查 sample.php jsApiList 数组: 没有使用api,ready里面为空 时 改:jsApiList[''] //ios ok 安卓fail 改2:ready里面加了调用api的代码 //ios ok 安卓ok
使用jssdk的API
vue + jssdk
开发: jssdk的api调用方式,vue事件触发,或者钩子函数触发
测试:
npm run build
打包,拷贝到 仓库,commit,刷手机 拷贝到 仓库时要 手动合并vue入口
index.html
到仓库入口index.php
自动合并
//修改 vue 下面 public/index.html <?php require_once "../php/jssdk.php"; // $jssdk = new JSSDK("xx", "xx");//正式号 $jssdk = new JSSDK("wxcfc056111e4f47c2", "660175f98e2f06105ed18b5cfc1b1cc1");//测试号 无限制 $signPackage = $jssdk->GetSignPackage(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <title><%= htmlWebpackPlugin.options.title %></title> </head> <body> <div id="app"></div> <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script> wx.config({ debug: true,//调试模式,在手机看到信息(正确,错误) appId: '<?php echo $signPackage["appId"];?>', timestamp: <?php echo $signPackage["timestamp"];?>, nonceStr: '<?php echo $signPackage["nonceStr"];?>', signature: '<?php echo $signPackage["signature"];?>', jsApiList: [ // 所有要调用的 API 都要加到这个列表中 'chooseImage','scanQRCode','onMenuShareTimeline','onMenuShareAppMessage' ] }); </script> <!-- built files will be auto injected --> </body> </html> //配置webpack //vue.config.js cli3/cli4 module.exports = { indexPath: 'index.php', //打包vue/public/html->php outputDir: '../svn|git仓库地址',//指定打包到jssdk仓库目录 publicPath: process.env.NODE_ENV === 'production' ? './' : '/' } //package.json 打包时 --no-clean 不清除dist { "scripts": { "build": "vue-cli-service build --no-clean" }, } //cli1/2 可配置保存自动打包 //package.json nodemon监听src完成修改-e指定文件后,自动打包 "scripts": { "jssdk":"nodemon --watch src -e html,vue,js,less build/build.js", }, //build/build.js 不清除dist 注释 //rm(.. // if (err) throw err //config/index.js { build: { // 参考模板 输出到目标 index: path.resolve(__dirname, '../仓库/index.php'), // Paths assetsRoot: path.resolve(__dirname, '../仓库'), }
-
Hybird
2016-06-21 16:31:08浅谈Hybrid技术的设计与实现 http://www.cnblogs.com/yexiaochai/p/4921635.html浅谈Hybrid技术的设计与实现
http://www.cnblogs.com/yexiaochai/p/4921635.html -
hybird简介
2019-05-26 15:45:00hybird是客户端与前端的混合开发 hybird存在的核心意义在于快速迭代,无需审核 弊端就是需要前端,后端一起联调修改 转载于:https://www.cnblogs.com/Aaron1Tall/p/10926260.html...hybird是客户端与前端的混合开发hybird存在的核心意义在于快速迭代,无需审核弊端就是需要前端,后端一起联调修改转载于:https://www.cnblogs.com/Aaron1Tall/p/10926260.html
-
Hybird 放大器介绍
2020-10-20 21:41:08Hybird放大器介绍,1、前言在拉曼放大器(Ramanamplifier,RFA)及掺铒光纤放大器(Erbium-do -
hybird简介以及安卓应用hybird初体验
2018-05-24 11:09:32hybird简介: 有一篇文章写的很好,有兴趣的同学可以去看一下hybird app 如今app应用大概分三种: 1、原生app 顾名思义是纯原生写出的app 2、web app 顾名思义是web写出的app 3、hybird app 原生+web写出的app...hybird简介:
有一篇文章写的很好,有兴趣的同学可以去看一下hybird app
如今app应用大概分三种:
1、原生app 顾名思义是纯原生写出的app
2、web app 顾名思义是web写出的app
3、hybird app 原生+web写出的app
hybird app 用通俗的话来解释就是web运行在app的webview上,其关键点在于web和原生的交互
那么web和原生怎么交互呢?(这里的原生解释一下,比如web如何调用手机的相机,相册等)
有兴趣的同学可以看看我写的这篇文章,写了一点交互基础点击打开链接
安卓webview中setWebViewClient方法,WebViewClient中有个方法为
shouldOverrideUrlLoading
这个方法可以拦截到页面跳转的url,那么如果web要让客户端做什么的时候,是可以将一些参数加到跳转url中的,在跳转的时候,客户端拦截到web传过来的url,解析url做相应的事情
OK web------->客户端走通了,那么客户端---------->web呢?答案在上面的链接中,不懂的同学可以去看看
好的,接下来上代码
web.html位置:
<html> <head> <meta charset="utf-8"> <script type="text/javascript"> function javaToJS(){ document.getElementById("content").innerHTML = "<br\>JAVA调用了JS的无参函数"; } function javaToJsWith(arg){ <!--document.getElementById("content").innerHTML =--> <!--("<br\>"+arg);--> document.location=arg; } function hybird(){ document.location="jump&ddididisisidisdi" <!--window.location.href="jump&ddididisisidisdi";--> } </script> </head> <body> 以下为html内容<br/> <h1><div id="content">显示一条文本</div></h1> <br/> <input type="button" value="调用java代码,且无参" οnclick="window.java.noParameterFunction()" /> <br/> <br/> <input type="button" value="调用java代码,且有参" οnclick="window.java.parameterFunction('JS->android 有参成功')"/> <br/> <br/> <button id="btn" οnclick="hybird()">hybird 测试</button> </body> </html>
MainActivity.java
package com.example.zyy.androidtohtml; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.webkit.JavascriptInterface; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.Toast; /** * Created by zyy on 2018/2/27. */ public class MainActivity extends Activity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = (WebView) findViewById(R.id.webview); // 启用javascript webView.getSettings().setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.indexOf("jump")>-1){ Toast.makeText(MainActivity.this,"hahahahahha",Toast.LENGTH_LONG).show(); return true; }else if (url.startsWith("http")){ view.loadUrl(url); return true; } return false; } }); webView.setWebChromeClient(new WebChromeClient()); // 从assets目录下面的加载html webView.loadUrl("file:///android_asset/web.html"); webView.addJavascriptInterface(MainActivity.this, "java");//name:android在网页里面可以用window.name.方法名调用java方法 //Button1按钮 无参调用HTML js方法 findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 无参数调用 JS的方法 webView.loadUrl("javascript:javaToJS()"); } }); //Button2按钮 有参调用HTML js方法 findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 传递参数调用JS的方法,点击后调用document.location=arg切换网页 webView.loadUrl("javascript:javaToJsWith(" + "'https://baike.so.com/doc/456230-483111.html'" + ")"); } }); } //由于安全原因 targetSdkVersion>=17需要加 @JavascriptInterface //JS调用java,且无参 @JavascriptInterface public void noParameterFunction() { runOnUiThread(new Runnable() { @Override public void run() { Button button = (Button) findViewById(R.id.button2); button.setText("JS->android 无参成功"); } }); } //JS调用java,且传参 @JavascriptInterface public void parameterFunction(final String parameter) { runOnUiThread(new Runnable() { @Override public void run() { Button button = (Button) findViewById(R.id.button2); button.setText(parameter); } }); } }
效果:
-
Hybird初始
2016-01-21 18:42:001.什么是Hybird 来自百度百科 http://baike.baidu.com/link?url=Am_ga2NdgpXwLNCJ8tR9NCX42y5fjTE5P5SEBvVkJ5YQ2FmTYgjzGF9wIGwI7QZsUJNYalqmqO1lXfYE_Ys-tK Hybrid App(混合模式移动应用)是指介于web-app、... -
全栈训练SpringCloud AngularIonic Hybird
2020-11-04 14:39:19掌握Hybird开发技术在Android和iOS移动客户端中的应用;云服务器配置技术,包括java运行环境安装、Nginx作为web服务器和前后端分离的实现、SSL证书的申请与配置等内容; 第一章 介绍了前后端开发环境的搭建... -
Hybird接口的理解
2020-10-28 19:17:48接口类型分为:access、trunk、Hybird(华为、华三专用) 之前也没用过hybird接口,我就说一下现在的理解吧。 Hybrid接口相比trunk接口,在vlan管控上更灵活,怎么实现的呢-通过untag表、tag表。tag表用来将入帧打上... -
基于apicloud平台的hybirdapp开发demo
2019-08-10 06:00:35基于apicloud平台的hybird app开发demo -
内核hybird poll原理
2020-07-13 21:23:10但是持续的poll一个设备,会过度的占用CPU,有时可能使IO性能更糟糕,为了解决这种传统poll过度占用CPU的问题,内核引入了hybird poll,与传统的poll在IO提交后就立即poll不同,在hybird poll机制中引入了poll delay... -
Hybird A* 算法
2020-09-02 21:49:22Hybird A*算法操作步骤:小结 路径规划做为机器人导航中的一个重要的技术,一个好的路径规划可以极大地提高后续跟踪控制的效果,对机器人的运行好坏程度有非常直观的表现。从最初搜索一条有效路径(如Dijkstra、... -
Hybird Discrete Differential Evolution Algorithm for Motor Train-sets Scheduling
2021-02-08 16:54:09Hybird Discrete Differential Evolution Algorithm for Motor Train-sets Scheduling -
交换机该怎么理解Hybird中Tag和Untag端口模式?
2020-10-01 14:27:15交换机该怎么理解Hybird中Tag和Untag端口模式?交换机中不同的情况适用的端口模式也不同,今天我们来看看Trunk和Hybird模式下存在端口缺省vlan的概念,需要的朋友可以参考下 -
hybird架构的优缺点
2019-07-08 17:19:38hybird架构的优缺点 现在越来越多的移动应用采用hybird架构进行开发了,主要是H5有以下几个优点: H5开发效率高、跨平台、低成本 H5从业务开发上讲,没有版本问题,有BUG能及时修复 当加载一个h5页面时,对于页面中... -
华为Hybird接口配置实验
2021-01-14 18:29:11华为Hybird接口实验配置实验分析实验配置实验现象 实验要求 1.PC1和PC3在192.168.2.0/24网段,其所在接口为Access,PVID为2; 2.PC2/4/5/6在192.168.1.0/24网段,对这几台PC做如下要求: PC2可以访问PC4/5/6;PC4... -
Broad band ultrafast response vertical phototransistors based on perovskite / quantum dot hybird
2021-02-08 11:37:23Broad band ultrafast response vertical phototransistors based on perovskite / quantum dot hybird -
IOS中Hybird实现
2017-03-03 15:44:00现在Hybird这块,网上也有很多文章,最近研究了下,分享给大家。 什么是Hybird技术? 1、一般是指WebView和Native技术混合而成的一套技术方案 2、也可以理解成,非Native技术与Native技术的混合开发 现在的... -
Hybird App混合开发
2019-03-28 18:27:13Hybird App Hybrid 开发:JsBridge - Web 和客户端的桥 基本原理 Hybrid开发中,web页面往往会跟native进行交互,而JSBridge就是web页面和native进行通信的桥梁,通过JSBridge可以实现web调用native的方法,... -
Hybird方案-概述
2019-04-23 11:43:01“Hybrid” 这个词越来越多的出现在人们的视野中。比如在汽车行业内,代表着混合动力版的...hybird ['haɪbrɪd] / hy 发 high ;bird 也别当鸟的单词念 n. 杂种,混血儿;混合物 adj. 混合的;杂种的 Hybrid... -
初学者的Hybird综合实验
2020-06-01 19:57:59Hybird综合实验 实验目的:Hybird,access,trunk知识巩固学习 实验步骤: \1. LSW1命令配置 \2. LSW2配置命令 \3. 路由R1配置 \4. 路由R2配置 \5. Ping命令验证 \1. LSW1命令配置 vlan batch 10 20 # interface ... -
hybird app 工具选型
2017-07-14 23:41:00目前hybird app工具众多,如何选择?哪个坑少点呢? 下面来分析一下: 1开发工具都开源。基于Eclipse的有:apicloud,WeX5 2热门指数。下面的百度的搜索结果数,代表不了什么,至少可以代表它的热门指数 ... -
fonts-hybird:自制的虚拟终端的中英文交叉等宽字体-源码
2021-02-05 06:44:17fonts-hybird:自制的虚拟终端的中英文交叉等宽字体 -
Hybird app阶段分析
2017-01-10 15:01:46国内Hybird开发模式 的app 淘宝,天猫,微信,京东,携程,网易 微信 html 我的钱包具体功能,发现购物 淘宝、携程 native:首页,系统列表页 https://www.zhihu.com/question/28469978 淘宝天猫这样的超大型App业务... -
android hybird 实现:自定义schema
2018-06-15 10:53:56android hybird 与h5 app区别 hybird 与h5 app是不一样的,以前对这两者理解有所误解,在实际开发中也并未真正采用hybird,而是使用h5+app外壳实现移动端应用。虽然开发出来的应用实现了无需升级app实现主功能更新,... -
Hybird APP 开发 总结
2015-04-13 14:41:31Hybird APP 开发 总结APICLOUDAPPCAN http://www.appcan.cn - -
android集成apicloude superWebView 实现Hybird app解决方案
2016-03-26 10:41:06android集成apicloude superWebView 实现Hybird app解决方案 混合开发,高效速成,快速达到版本迭代效果。android studio版
-
云计算专题:(一)带你走近云计算.pdf
-
【开发工具】eclipse配置jdk
-
CentOS安装数据库mariadb
-
非常珍贵的新唐IAP文档
-
猫眼dubbo笔记.docx
-
朱老师C++课程第3部分-3.6智能指针与STL查漏补缺
-
flowable已办任务查询
-
计算机二级Ms Office2016考点——字体设置
-
libFuzzer视频教程
-
使用docker安装mysql 8.0.18
-
柯尼卡美能达 柯美 C266 C256 C226 彩色复印机中文维修手册.rar
-
从十四五规划看数字化转型.pptx
-
flowable在办任务查询
-
Linux 用户管理 5 之用户属性属性
-
AWS_Certified_Developer-Associate_Sample_Questions_v2.0_FINAL.pdf
-
PowerBI重要外部工具详解
-
用Go语言来写区块链(一)
-
git安装与配置
-
【硬核】一线Python程序员实战经验分享(1)
-
linux基础入门和项目实战部署系列课程