zigbeelibrary.jar包是用来接收zigbee协调器发来的数据,或者通过协调器控制其网内的继电器

首先将jar包和so文件添加到工程,可参考

https://blog.csdn.net/qq_40733723/article/details/89032484

基本步骤
1、初始化ui
2、初始化zigbee
(1)打开串口
(2)如果串口打开成功则开启数据接收线程
3、初始化回调函数,由于子线程无法更新ui,需要发送消息给ui线程
4、创建Handler用来接收子线程发来的消息

xml代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="20dp"tools:context=".MainActivity"><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="人体:"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/tvPerson"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toRightOf="@id/textView1"android:text="-"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="150dp"android:layout_toRightOf="@id/tvPerson"android:text="可燃气体:"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/tvFireGas"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toRightOf="@id/textView2"android:text="-"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="150dp"android:layout_toRightOf="@id/tvFireGas"android:text="空气质量:"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/tvCo"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toRightOf="@id/textView3"android:text="-"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView1"android:layout_marginTop="20dp"android:text="火焰:"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/tvFire"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView1"android:layout_marginTop="20dp"android:layout_toRightOf="@id/textView4"android:text="-"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView1"android:layout_marginLeft="150dp"android:layout_marginTop="20dp"android:layout_toRightOf="@id/tvFire"android:text="光照:"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/tvLight"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView1"android:layout_marginTop="20dp"android:layout_toRightOf="@id/textView5"android:text="-"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView6"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView1"android:layout_marginLeft="150dp"android:layout_marginTop="20dp"android:layout_toRightOf="@id/tvLight"android:text="温度:"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/tvTemp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView1"android:layout_marginTop="20dp"android:layout_toRightOf="@id/textView6"android:text="-"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView7"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView1"android:layout_marginLeft="150dp"android:layout_marginTop="20dp"android:layout_toRightOf="@id/tvTemp"android:text="湿度:"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/tvHum"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView1"android:layout_marginTop="20dp"android:layout_toRightOf="@id/textView7"android:text="-"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView8"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView5"android:layout_marginTop="20dp"android:text="继电器1"android:textColor="@android:color/black"android:textSize="25sp" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView8"android:layout_marginTop="20dp"android:onClick="relay1Open"android:text="开"android:textColor="@android:color/black"android:textSize="30sp" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView8"android:layout_marginTop="20dp"android:layout_toRightOf="@id/button1"android:onClick="relay1Close"android:text="关"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView9"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView5"android:layout_marginLeft="50dp"android:layout_marginTop="20dp"android:layout_toRightOf="@id/button2"android:text="继电器2"android:textColor="@android:color/black"android:textSize="25sp" /><Buttonandroid:id="@+id/button3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView8"android:layout_marginLeft="50dp"android:layout_marginTop="20dp"android:layout_toRightOf="@id/button2"android:onClick="relay2Open"android:text="开"android:textColor="@android:color/black"android:textSize="30sp" /><Buttonandroid:id="@+id/button4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView8"android:layout_marginTop="20dp"android:layout_toRightOf="@id/button3"android:onClick="relay2Close"android:text="关"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView10"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView5"android:layout_marginLeft="50dp"android:layout_marginTop="20dp"android:layout_toRightOf="@id/button4"android:text="继电器3"android:textColor="@android:color/black"android:textSize="25sp" /><Buttonandroid:id="@+id/button5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView8"android:layout_marginLeft="50dp"android:layout_marginTop="20dp"android:layout_toRightOf="@id/button4"android:onClick="relay3Open"android:text="开"android:textColor="@android:color/black"android:textSize="30sp" /><Buttonandroid:id="@+id/button6"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView8"android:layout_marginTop="20dp"android:layout_toRightOf="@id/button5"android:onClick="relay3Close"android:text="关"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView11"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/button1"android:layout_marginTop="20dp"android:text="value1:"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/tvValue1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/button1"android:layout_marginTop="20dp"android:layout_toRightOf="@id/textView11"android:text="-"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView12"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/button1"android:layout_marginLeft="100dp"android:layout_marginTop="20dp"android:layout_toRightOf="@id/tvValue1"android:text="value2:"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/tvValue2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/button1"android:layout_marginTop="20dp"android:layout_toRightOf="@id/textView12"android:text="-"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView14"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/button1"android:layout_marginLeft="100dp"android:layout_marginTop="20dp"android:layout_toRightOf="@id/tvValue2"android:text="value3:"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/tvValue3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/button1"android:layout_marginTop="20dp"android:layout_toRightOf="@id/textView14"android:text="-"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView15"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/button1"android:layout_marginLeft="100dp"android:layout_marginTop="20dp"android:layout_toRightOf="@id/tvValue3"android:text="value4:"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/tvValue4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/button1"android:layout_marginTop="20dp"android:layout_toRightOf="@id/textView15"android:text="-"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView16"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView11"android:layout_marginTop="20dp"android:text="双联继电器1"android:textColor="@android:color/black"android:textSize="25sp" /><Buttonandroid:id="@+id/button7"android:onClick="dRealy1Open"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView16"android:text="开"android:textColor="@android:color/black"android:textSize="30sp" /><Buttonandroid:id="@+id/button8"android:onClick="dRealy1Close"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView16"android:layout_toRightOf="@id/button7"android:text="关"android:textColor="@android:color/black"android:textSize="30sp" /><TextViewandroid:id="@+id/textView17"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView11"android:layout_toRightOf="@id/textView16"android:layout_marginTop="20dp"android:text="双联继电器2"android:layout_marginLeft="200dp"android:textColor="@android:color/black"android:textSize="25sp" /><Buttonandroid:id="@+id/button9"android:onClick="dRealy2Open"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toRightOf="@id/button8"android:layout_below="@id/textView17"android:text="开"android:layout_alignLeft="@id/textView17"android:textColor="@android:color/black"android:textSize="30sp" /><Buttonandroid:id="@+id/button10"android:onClick="dRealy2Close"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/textView17"android:layout_toRightOf="@id/button9"android:text="关"android:textColor="@android:color/black"android:textSize="30sp" /></RelativeLayout>

主函数代码

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;import com.newland.zigbeelibrary.ZigBeeService;
import com.newland.zigbeelibrary.ZigBeeServiceAPI;
import com.newland.zigbeelibrary.ZigbeeHelper;
import com.newland.zigbeelibrary.response.OnCoResponse;
import com.newland.zigbeelibrary.response.OnFireResponse;
import com.newland.zigbeelibrary.response.OnFiregasResponse;
import com.newland.zigbeelibrary.response.OnHumResponse;
import com.newland.zigbeelibrary.response.OnLightResponse;
import com.newland.zigbeelibrary.response.OnPersonResponse;
import com.newland.zigbeelibrary.response.OnTemperatureResponse;
import com.newland.zigbeelibrary.response.OnValue1Response;
import com.newland.zigbeelibrary.response.OnValue2Response;
import com.newland.zigbeelibrary.response.OnValue3Response;
import com.newland.zigbeelibrary.response.OnValue4Response;public class MainActivity extends AppCompatActivity {//继电器开关命令private final static char Relay1Open[] = new char[]{0xFF, 0xF5, 0x05,0x02, 0x01, 0x00, 0x00, 0x01, 0x03};private final static char Relay1Close[] = new char[]{0xFF, 0xF5, 0x05,0x02, 0x01, 0x00, 0x00, 0x02, 0x02};private final static char Relay2Open[] = new char[]{0xFF, 0xF5, 0x05,0x02, 0x02, 0x00, 0x00, 0x01, 0x02};private final static char Relay2Close[] = new char[]{0xFF, 0xF5, 0x05,0x02, 0x02, 0x00, 0x00, 0x02, 0x01};private final static char Relay3Open[] = new char[]{0xFF, 0xF5, 0x05,0x02, 0x03, 0x00, 0x00, 0x01, 0x01};private final static char Relay3Close[] = new char[]{0xFF, 0xF5, 0x05,0x02, 0x03, 0x00, 0x00, 0x02, 0x00};private final static char Relay4Open[] = new char[]{0xFF, 0xF5, 0x05,0x02, 0x04, 0x00, 0x00, 0x11, 0x01};private final static char Relay4Close[] = new char[]{0xFF, 0xF5, 0x05,0x02, 0x04, 0x00, 0x00, 0x22, 0x00};private final static char Relay5Open[] = new char[]{0xFF, 0xF5, 0x05,0x02, 0x05, 0x00, 0x00, 0x11, 0x01};private final static char Relay5Close[] = new char[]{0xFF, 0xF5, 0x05,0x02, 0x05, 0x00, 0x00, 0x22, 0x00};private TextView tvPerson;private TextView tvFireGas;private TextView tvCo;private TextView tvFire;private TextView tvLight;private TextView tvTemp;private TextView tvHum;private TextView tvValue1;private TextView tvValue2;private TextView tvValue3;private TextView tvValue4;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initZigbee();initGetDataCallBack();}//找到ui控件private void initView() {tvPerson = findViewById(R.id.tvPerson);tvFireGas = findViewById(R.id.tvFireGas);tvCo = findViewById(R.id.tvCo);tvFire = findViewById(R.id.tvFire);tvLight = findViewById(R.id.tvLight);tvTemp = findViewById(R.id.tvTemp);tvHum = findViewById(R.id.tvHum);tvValue1 = findViewById(R.id.tvValue1);tvValue2 = findViewById(R.id.tvValue2);tvValue3 = findViewById(R.id.tvValue3);tvValue4 = findViewById(R.id.tvValue4);}//发送继电器1开指令public void relay1Open(View v) {//参数1,ZigbeeHelper.com为调用打开串口函数的返回值//参数2,Relay1Open为静态指令ZigBeeServiceAPI.sendCMD(ZigbeeHelper.com, Relay1Open);}//发送继电器1关指令public void relay1Close(View v) {ZigBeeServiceAPI.sendCMD(ZigbeeHelper.com, Relay1Close);}public void relay2Open(View v) {ZigBeeServiceAPI.sendCMD(ZigbeeHelper.com, Relay2Open);}public void relay2Close(View v) {ZigBeeServiceAPI.sendCMD(ZigbeeHelper.com, Relay2Close);}public void relay3OPen(View v) {ZigBeeServiceAPI.sendCMD(ZigbeeHelper.com, Relay3Open);}public void relay3Close(View v) {ZigBeeServiceAPI.sendCMD(ZigbeeHelper.com, Relay3Close);}public void dRealy1Open(View v){ZigBeeServiceAPI.sendCMD(ZigbeeHelper.com,Relay4Open);}public void dRealy1Close(View v){ZigBeeServiceAPI.sendCMD(ZigbeeHelper.com,Relay4Close);}public void dRealy2Open(View v){ZigBeeServiceAPI.sendCMD(ZigbeeHelper.com,Relay5Open);}public void dRealy2Close(View v){ZigBeeServiceAPI.sendCMD(ZigbeeHelper.com,Relay5Close);}//接收到zigbee发来的数据后更新uiHandler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case 1://人体传感器tvPerson.setText(msg.obj.toString());break;case 2://可燃气体传感器tvFireGas.setText(msg.obj.toString());break;case 3://空气质量传感器tvCo.setText(msg.obj.toString());break;case 4://火焰传感器tvFire.setText(msg.obj.toString());break;case 5://光照传感器tvLight.setText(msg.obj.toString());break;case 6://温度传感器tvTemp.setText(msg.obj.toString());break;case 7://湿度传感器tvHum.setText(msg.obj.toString());break;case 8://四通道1tvValue1.setText(msg.obj.toString());break;case 9://四通道2tvValue2.setText(msg.obj.toString());break;case 10://四通道3tvValue3.setText(msg.obj.toString());break;case 11://四通道4tvValue4.setText(msg.obj.toString());break;}}};//初始化zigbeeprivate void initZigbee() {/*** openPort打开接口* com,第n个接口* mode,模式,0表示使用串口,1表示使用usb* baudRate,波特率*/ZigBeeServiceAPI.openPort(1, 0, 5);//串口打开成功后,将会有一个大于0的数赋值给ZigbeeHelper类的属性com,否则为-1if (ZigbeeHelper.com < 0) {Toast.makeText(this, "串口打开失败", Toast.LENGTH_SHORT).show();return;}//打开数据接收线程ZigBeeService service = new ZigBeeService();service.start();}//初始化回调函数private void initGetDataCallBack() {ZigBeeServiceAPI.getPerson("person", new OnPersonResponse() {@Overridepublic void onValue(int i) {}@Overridepublic void onValue(String s) {Message msg = Message.obtain();msg.what = 1;msg.obj = s;//发送消息给ui线程handler.sendMessage(msg);}});ZigBeeServiceAPI.getFiregas("firegas", new OnFiregasResponse() {@Overridepublic void onValue(String s) {Message msg = Message.obtain();msg.what = 2;msg.obj = s;handler.sendMessage(msg);}@Overridepublic void onValue(double v) {}});ZigBeeServiceAPI.getCo("co", new OnCoResponse() {@Overridepublic void onValue(String s) {Message msg = Message.obtain();msg.what = 3;msg.obj = s;handler.sendMessage(msg);}@Overridepublic void onValue(double v) {}});ZigBeeServiceAPI.getFire("fire", new OnFireResponse() {@Overridepublic void onValue(String s) {Message msg = Message.obtain();msg.what = 4;msg.obj = s;handler.sendMessage(msg);}@Overridepublic void onValue(double v) {}});ZigBeeServiceAPI.getLight("light", new OnLightResponse() {@Overridepublic void onValue(String s) {Message msg = Message.obtain();msg.what = 5;msg.obj = s;handler.sendMessage(msg);}@Overridepublic void onValue(double v) {}});ZigBeeServiceAPI.getTemperature("temp", new OnTemperatureResponse() {@Overridepublic void onValue(String s) {Message msg = Message.obtain();msg.what = 6;msg.obj = s;handler.sendMessage(msg);}@Overridepublic void onValue(double v) {}});ZigBeeServiceAPI.getHum("hum", new OnHumResponse() {@Overridepublic void onValue(String s) {Message msg = Message.obtain();msg.what = 7;msg.obj = s;handler.sendMessage(msg);}@Overridepublic void onValue(double v) {}});//zigbee四通道数据回调函数初始化ZigBeeServiceAPI.getValue1("value1", new OnValue1Response() {@Overridepublic void onValue(String s) {Message msg = Message.obtain();msg.what = 8;msg.obj = s;handler.sendMessage(msg);}@Overridepublic void onValue(double v) {}});ZigBeeServiceAPI.getValue2("value2", new OnValue2Response() {@Overridepublic void onValue(String s) {Message msg = Message.obtain();msg.what = 9;msg.obj = s;handler.sendMessage(msg);}@Overridepublic void onValue(double v) {}});ZigBeeServiceAPI.getValue3("value3", new OnValue3Response() {@Overridepublic void onValue(String s) {Message msg = Message.obtain();msg.what = 10;msg.obj = s;handler.sendMessage(msg);}@Overridepublic void onValue(double v) {}});ZigBeeServiceAPI.getValue4("value4", new OnValue4Response() {@Overridepublic void onValue(String s) {Message msg = Message.obtain();msg.what = 11;msg.obj = s;handler.sendMessage(msg);}@Overridepublic void onValue(double v) {}});}@Overrideprotected void onDestroy() {ZigBeeServiceAPI.closeUart();super.onDestroy();}}

zigbeelibrary.jar的使用相关推荐

  1. 手动将web项目的class文件打成jar包,手动打jar包,java -cvf,IDE打包底层指令

    手动将web项目的class文件打成jar包. 我们的项目在使用IDE进行编译后,在项目的target目录下将会生成class文件.我们可以将class文件打成jar包. 使用的到命令为: 在targ ...

  2. 将jar包部署在docker上,将jar包打成镜像,使用docker部署jar包

    假设你已经准备好以下东西,即可进行服务部署 一台安装好docker的linux服务器(安装docker见安装docker) 准备好的jar包 接下来开始吧! 将jar包上传至服务器(建好文件夹存放以方 ...

  3. jar包升级部署到服务器详细流程,将服务部署在linux中

    假设你已经准备好以下东西,即可进行服务部署 一台服务器(云服务器或虚拟机皆可) 已安装好的jdk 1.8 + 的环境(可自行百度) 打好的jar包(maven打jar包) 1. 在服务器中新建好你的项 ...

  4. jar包部署shell脚本编写,在服务器上部署jar包,在Linux服务器上部署服务,设置编码格式,设置内存管理

    准备步骤: 1.安装java环境,知道java安装目录 2.将jar包拖放或发送至服务器中(目录自定义) 一.编写shell脚本,将以下代码放在shell脚本中,将shell脚本放在jar包同级目录下 ...

  5. 使用Maven打包生成的-SNAPSHOT.jar与-RELEASE.jar分别代表什么?SNAPSHOT是什么意思?RELEASE是什么意思?

    使用Maven打包后生成 XXXXXXX-1.0.0-SNAPSHOT.jar 和 XXXXXXX-1.0.0-RELEASE.jar 的区别???? 首先,根本原因:这是因为你的pom.xml中的项 ...

  6. 手动将jar包导入pom依赖,让jar包适配本地maven项目

    前言: Oracle对maven很久没有更新依赖,虽然19年更新了一版,但pom引入一直有错误. 我用的是oralce 12的依赖,虽然有jar包,但是依赖和pom没有适配,项目打包的时候还要去中央仓 ...

  7. linux启动,重启,停止 jar,.sh脚本

    linux启动,重启,停止 jar,.sh脚本 #配置jar名称 APP_NAME=receiver.jar#使用说明,用来提示输入参数 usage() { echo "Usage: sh ...

  8. Intellij IDEA 添加jar包

    二.通过Modules的Dependencies添加:(推荐) 1.打开 File -> Project Structure (Ctrl + Shift + Alt + S)   2.单击 Mo ...

  9. Android studio 导入jar 文件

    1  网上下载的jar 文件 导入到lib 里面 如下 如果鼠标左键不能打开说明还没有依赖 2 鼠标右键点击查看下面 Add As Library 3 点击确定 这样就导入第三方的jar 文件了 导入 ...

  10. Error:Could not download guava.jar (com.google.guava:guava:19.0): No cached version available for of

    今天从git导入demo 报错 Error:Could not download guava.jar (com.google.guava:guava:19.0): No cached version ...

最新文章

  1. html引入css webpack_webpack4(一):基本配置、html和css的处理
  2. 2019.03.18 连接my sql
  3. 如何获取58上真实号码_如何获取Apollo上项目下的所有namespace?
  4. mvc4 html.dropdownlist,ASP.NET MVC4中使用Html.DropDownListFor的方法示例
  5. shell(一)——概述、变量、运算符
  6. python单选题库答案_大学慕课2020用Python玩转数据题库及答案
  7. 【电脑帮助】解决Wind10系统spacedesk程序开机自启动的问题
  8. python开发自动化测试工具_Moler首页、文档和下载 - Python 编写真的自动化测试工具包 - OSCHINA - 中文开源技术交流社区...
  9. Android packageManager.setComponentEnabledSetting()和setApplicationEnabledSetting()方法介绍
  10. linux安装iscsi设备,linux系统下安装配置iSCSI教程
  11. 解决No instances available for XXX
  12. python如何打开excel表格_python怎么读取excel表格
  13. 八百八十岁也没活明白
  14. git color 让git有颜色
  15. linux 街机列表,linux下街机模拟器联机
  16. 肖秀荣真的是“yyds”吗?会被反押题吗?今年还会押中原题吗
  17. word2013插入excel对象报错_excel插入对象文件夹 Excel2013中插入对象文件的方法
  18. 短视频寒冬,抖音、美拍、快手等将何去何从?
  19. 弃百万年薪加入创业期阿里拿500元,他证明选择和努力同样重要
  20. 如何输出100以内的偶数、奇数、质数

热门文章

  1. vp9 prob 详细分析
  2. 硅钢片铁芯、坡莫合金、非晶及纳米晶软磁合金
  3. 软件工程——软件结构图设计(变换分析设计、事务分析设计、混合流设计)
  4. 如何将十进制转化为二进制和十六进制
  5. 20款最好的jQuery文件上传插件
  6. 利用pdf.js封装vue组件在vue中实现在线pdf查看
  7. 百度网盘不限速下载方法全解(验证、体会、转载)
  8. 敏捷开发工具scrum
  9. 使用Visio画各种可视化的流程图之用例图和类图
  10. 前端使用阿里云图标库