2021年3月8日更新
一、Android开始编程前置操作(导入jar包)
导入需要导入的资源
- 根据提供的库文件文件夹,找到"第三阶段文件"
找到"安卓库文件"文件夹,内含有
assets
和libs
文件夹- 将这两个文件夹按照下面的要求复制到对应的文件夹:
assets
:为Android Studio新增的资源文件夹。将需要的模块放置在app
-src
-main
文件夹中,和java
、res
为同级目录libs
:可放置离线jar包,应将文件夹创建复制到工程目录app
根目录下(如果已有libs目录,应将将提供lib文件夹得资源包复制到你的工程下的app\libs
目录下)。
导入方法 一
将提供的libs文件夹内的所有文件/文件夹复制到工程目录下的libs文件夹内
- 点击Android Studio界面右上角的"Project Structure"(如图)

在弹出的窗口中选择"File dependency"(如图)
- 选择
Modules
,点击侧栏中的加号 - 在弹出的选择框中拉到最底下,选择Import JARxxxxxxxxx
- 点击Next进入第5步
- 选择

- 在选择Next后,在下一页点击文件夹,在弹出框中选择企想提供的jar包,然后选择Finish按钮。需要注意的是,企想提供了三个jar包,需要分别导入三次。

- 当左边libs文件夹内的jar包出现三角时,证明导入成功,可以使用了

需要在Adnroid Studio内引用.so文件,在工程app文件夹的根目录中找到
build.gradle
,并在内添加如下字段:sourceSets { main { jniLibs.srcDirs = ['libs'] } }

- 找到提供的
assets
文件夹,将其复制到工程目录的app\src\main
目录下,如图:

导入方法 二
将提供的libs文件夹内的所有文件/文件夹复制到工程目录下的libs文件夹内
- jar包放入libs文件夹内后,在需要导入的jar包上右键,选择
“Add As Library......”(如图)

- 看到左边libs文件夹内的jar包出现三角时,证明导入成功,可以使用了

需要在Adnroid Studio内引用.so文件,在工程app文件夹的根目录中找到
build.gradle
,并在内添加如下字段:sourceSets { main { jniLibs.srcDirs = ['libs'] } }

- 找到提供的
assets
文件夹,将其复制到工程目录的app\src\main
目录下,如图:

二、Android Studio编译器设置相关
1. Android SDK版本
创建工程时就可以选择版本。如果忘记选择的是什么版本,可按照本教程检查/更改。
硬件、版本限制为最低SDK版本不能低于15,即Android 4.0.3
按下Ctrl + Alt + Shift + S
快捷键,打开APP配置(如图),检查Min SDK版本是不是15。设置完成后点击OK
即可。

或者打开app目录
下的build.gradle
,修改配置内的"minSdkVersion"
,修改后要点击"Sync"
同步配置

因为企想提供的
嵌入式Android开发套件
最高版本是Android 4.0.3
即SDK 15
2.快捷键设置
依据个人习惯
按下Ctrl + Alt + S
或点击左上角File
菜单,选择Settings
打开Android Studio设置(如图),在左上搜索栏输入KeyMap
,设置按键风格,更改为Eclipse

3.自动填充相关设置
在左上角搜索Auto
,在侧栏二级菜单找到Editor - General - Code Completion
,设置代码自动提示补全。
需要注意的是:取消勾选Match case,代表关闭大小写区分,可以更方便。

三、使用Android Studio创建一个工程
注:各个版本界面不同,但操作大体相同
- 打开Android Studio。界面大体如下:

点击Start a new Android Studio project
即可开始第一个 Android 程序的开发。
- 点击
第一个创建工程(Start a new Android Studio project)
,来到如下图界面(各个版本界面不同),此界面主要用于给APP命名、APP的包名设置、工程文件存储目录。选择好后点击Next来到下一步。

- 选择对应的Android SDK版本。因为嵌入式开发套件(箱子)的版本是4.0.3,所以选择4.0.3版本(图文不一致,按照4.0.3为准)
Minimum SDK 版本为 4.0.3(注意如果此版本号大于手机版本号时是无法在手机上安装的)。点击Next进入下一步。

- 进入到选择模板界面,一般选择Empty Activity(空模板),点击Next
- 按自己喜好填写 Activity 和 Layout 名称。点击 Finish。
- 点击finsh后,Android Studio会正式创建一个工程,主界面如下图:

软件界面主要分为四部分。
- 第一部分(1):这里显示了当前打开的文件目录。
- 第二部分(2):这里显示了当前工程所有的文件,可通过右上角切换为
"Project"
显示更多内容。 - 第三部分(3):这里是打开的源代码文件,编写代码的工作就是在这里完成的。
- 第四部分(4):这里是Android Studio的工作栏,从左到右依次是“编译工程”、“App model”、“选择可运行的设备”、“运行工程”。
四、智能家居jar包改动部分
使用新的服务器连接方式
方法:SocketClient.getInstance().CreatConnect(); |
---|
简介:使用Socket进行服务器连接 |
参数:无 |
返回值:String类型,“0”为成功,“1”为失败 |
调用示例: |
//设置用户名、密码、IP地址
ControlUtils.setUser(bizi_user, bizi_pass, SocketClient.ip);
//创建链接
SocketClient.getInstance().creatConnect();
//获取链接状态
SocketClient.getInstance().login(new LoginCallback() {
@Override
public void onEvent(final String s) {
//新建可操作UI的线程
runOnUiThread(new Runnable() {
@Override
public void run() {
if (s.equals(ConstantUtil.Success)) {
//成功
} else if (s.equals(ConstantUtil.Failure)) {
//失败
} else {
//出现未知错误
}
}
});
}
});
使用新的控制指令
方法:control(String SensorType,String BoardId,String CmdCode,String Channel,String Command) 翻译:控制指令(传感器类型,传感器板号ID,指令,通道,指令) |
---|
简介:发送单控控制指令 |
参数: SensorType——设备类型 BoardId——板号 CmdCode——cmd指令 Channel——通道 Command——开关指令 |
返回值(如果需要使用):boolean类型 true为成功 false为失败; |
调用示例: |
ControlUtils.control(ConstantUtil.RelayType, "10",
ConstantUtil.CmdCode_1,
ConstantUtil.Channel_ALL,
ConstantUtil.Open);
使用新的数据获取指令
方法: ControlUtils.getData(); Controlutils.getFaceData(); |
---|
简介: getData()//获取设备数据 getFaceData()//获取打卡信息 |
参数: DeviceBean getName()//打卡姓名 getTime()//打卡时间 getDevice()//获取设备列表信息 getSensorType()//获取设备类型 getValue()//获取值 getBoardId//获取板号 |
返回值:onResult(final DeviceBean,Device bean)。返回一个方法,内部值需要使用上面的参数自取 |
调用示例: |
//获取数据
ControlUtils.getData();
//获取人脸数据
ControlUtils.getFaceData();
//创建链接(不知道能不能用)
SocketClient.getInstance().creatConnect();
//开始从服务器获取数据
SocketClient.getInstance().getData(new DataCallback<DeviceBean>() {
@Override
public void onResult(final DeviceBean getdata) {
//新建可操作UI的线程
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
//使用try防止报错闪退
try {
//获取打卡ID
if (!TextUtils.isEmpty(getdata.getName())) {
AppConfig.card_name = getdata.getName();
}
//获取打卡时间
if (!TextUtils.isEmpty(getdata.getTime())) {
AppConfig.card_time = getdata.getTime();
}
if (getdata.getDevice().size() > 0) {
DiyToast.showToast(activity, "当前已装载:"+getdata.getDevice().size() + "个设备");
for (int i = 0; i < getdata.getDevice().size(); i++) {
/**
* 获取传感器状态
*/
//获取温湿度
if (getdata.getDevice().get(i).getBoardId().equals(BORDID_TEMP_HUM)) {
if (getdata.getDevice().get(i).getSensorType().equals(ConstantUtil.Temperature)) {
//温度
temp = Float.valueOf(getdata.getDevice().get(i).getValue());
} else {
//湿度
hum = Float.valueOf(getdata.getDevice().get(i).getValue());
}
}
if (getdata.getDevice().get(i).getBoardId().equals(BORDID_ILL)) {//光照度
ill = Float.valueOf(getdata.getDevice().get(i).getValue());
}
if (getdata.getDevice().get(i).getBoardId().equals(BORDID_SMO)) {//烟雾
smo = Float.valueOf(getdata.getDevice().get(i).getValue());
}
} catch (Exception e) {
//输出异常信息
e.printStackTrace();
}
}
});
}
});