原创 基于机智云AIoT平台的Android开源app修改教程

2021-7-7 17:16 8394 8 8 分类: 消费电子 文集: 机智云
为了使自己的app更加的有个人风格,因此在网上寻找了很多的参考资料,这里是对自己设计的总结,具体机智云APP生成流程请参考我上一篇博客:基于STM32的连接机智云教程。
一,下载机智云开源APP
进行以下操作之前请确保已经在机智云平台中创建了一个产品,下面点击添加应用,选择Android生成一个app应用
然后按照图片提示,将密匙填入到相应位置,具体参考我上一篇博客,点击下载,将app工程下载到本地
2、Andriod方面处理
2.1 、AS软件安装与源码修改
Android studio软件安装与源码修改
将下载好了的文件解压出来,然后将第二个文件夹复制出来,粘贴到存放Android studio文件例程文件夹中,若还没有安装Android studio的请参考这位大佬的详细例程,这边建议下载的Android studio版本不要太新,不然工程可能编译不成功。
然后自己新建一个Android工程作为参考,方便修改源码,
第一处参考新建例程修改机智云APP
将此处修改为对应的新建工程的内容
第二处按照此路径参考新建工程修改,这里是我自己的按照自己的新建工程修改完毕的代码
修改后如下图所示,需注意这里的compile 均替换为implementation,testcompile均替换为testimplementation。
然后可以从Android studio里面打开修改好的机智云开源app,等待一段时间打开后如下图所示,
这里我们打开工程视图


2.2、修改APP图标和名称
首先在网上下载相关素材备用,若大小不一,请自行修改图片或者图标的大小。这时将我们下载好的图标或者图片放置到桌面,然后分别复制一下,依次粘贴到drawable-xhdpi目录下(注意鼠标放在drawable-xhdpi上右击选Paste便出现如下界面)

点击确定,将此名称复制到按照如下图这个文件,红框内既是我们可以替换的app图标,将你的图标名称填上就ok,

下面在这个位置修改app名称

2.3、修改启动页面和内部UI

现在修改启动界面,这里的图片在前面我们已经复制到了相关目录下,现在可以按照下图将红框出修改成为你的图片名称,见下图

然后在172行和174行两处替换为你的设备离线图标
同样是这个目录下,在117行和119行相应位置替换为自己的设备在线图标
2.4、修改设备监控界面
下面修改一下设备监控界面,按照此路径打开
这是我已经修改好的界面UI,最后效果图如下(这里的图标可自行修改为自己的图标,若是仅仅复制代码会报错)


代码如下所示,可根据需要自行修改(仅供参考,最好要读懂代码)
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical">
  6. <include layout="@layout/header_toolbar" />
  7. <ScrollView
  8. android:layout_width="match_parent"
  9. android:layout_height="match_parent"
  10. android:background="@color/background_color"
  11. android:fadingEdge="vertical"
  12. android:paddingBottom="10dp"
  13. android:paddingTop="20dp"
  14. android:scrollbars="vertical" >
  15. <LinearLayout
  16. android:layout_width="match_parent"
  17. android:layout_height="wrap_content"
  18. android:orientation="vertical"
  19. android:scrollbars="vertical" >
  20. <LinearLayout
  21. android:layout_width="match_parent"
  22. android:layout_height="wrap_content"
  23. android:orientation="horizontal"
  24. android:scrollbars="horizontal" >
  25. <!-- 灯(布尔可写) -->
  26. <RelativeLayout
  27. android:layout_width="0dp"
  28. android:layout_height="match_parent"
  29. android:layout_marginBottom="1dp"
  30. android:layout_weight="3"
  31. android:alpha="1"
  32. android:background="@color/white"
  33. android:gravity="center_horizontal"
  34. android:padding="10dp">
  35. <ImageView
  36. android:id="@+id/LED"
  37. android:layout_width="wrap_content"
  38. android:layout_height="wrap_content"
  39. android:layout_alignParentTop="true"
  40. android:layout_centerHorizontal="true"
  41. android:src="@drawable/led" />
  42. <TextView
  43. android:id="@+id/Led_text"
  44. android:layout_width="wrap_content"
  45. android:layout_height="wrap_content"
  46. android:layout_below="@+id/LED"
  47. android:layout_centerHorizontal="true"
  48. android:layout_centerVertical="true"
  49. android:text="灯" />
  50. <Switch
  51. android:id="@+id/sw_bool_LED"
  52. android:layout_width="wrap_content"
  53. android:layout_height="wrap_content"
  54. android:layout_below="@id/Led_text"
  55. android:layout_alignParentBottom="true"
  56. android:layout_centerHorizontal="true"
  57. android:textOff="关闭"
  58. android:textOn="开启" />
  59. </RelativeLayout>
  60. <!-- 蜂鸣器(布尔可写) -->
  61. <RelativeLayout
  62. android:layout_width="0dp"
  63. android:layout_weight="3"
  64. android:layout_height="wrap_content"
  65. android:layout_marginBottom="1dp"
  66. android:background="@color/white"
  67. android:padding="10dp" >
  68. <ImageView
  69. android:id="@+id/BEEP"
  70. android:layout_width="wrap_content"
  71. android:layout_height="wrap_content"
  72. android:layout_alignParentTop="true"
  73. android:layout_centerHorizontal="true"
  74. android:src="@drawable/beep" />
  75. <TextView
  76. android:id="@+id/BEEP_text"
  77. android:layout_width="wrap_content"
  78. android:layout_height="match_parent"
  79. android:layout_centerVertical="true"
  80. android:layout_centerHorizontal="true"
  81. android:layout_below="@+id/BEEP"
  82. android:text="蜂鸣器" />
  83. <Switch
  84. android:id="@+id/sw_bool_BEEP"
  85. android:layout_width="wrap_content"
  86. android:layout_height="match_parent"
  87. android:layout_below="@+id/BEEP_text"
  88. android:layout_centerHorizontal="true"
  89. android:layout_centerVertical="true"
  90. android:textOff="关闭"
  91. android:textOn="开启" />
  92. </RelativeLayout>
  93. <!-- 开关(布尔可写) -->
  94. <RelativeLayout
  95. android:layout_width="0dp"
  96. android:layout_weight="3"
  97. android:layout_height="wrap_content"
  98. android:layout_marginBottom="1dp"
  99. android:background="@color/white"
  100. android:padding="10dp" >
  101. <ImageView
  102. android:id="@+id/LED1"
  103. android:layout_width="wrap_content"
  104. android:layout_height="wrap_content"
  105. android:layout_alignParentTop="true"
  106. android:layout_centerHorizontal="true"
  107. android:src="@drawable/kaiguan" />
  108. <TextView
  109. android:id="@+id/LED1_text"
  110. android:layout_width="wrap_content"
  111. android:layout_height="match_parent"
  112. android:layout_below="@+id/LED1"
  113. android:layout_centerHorizontal="true"
  114. android:layout_centerVertical="true"
  115. android:text="开关" />
  116. <Switch
  117. android:id="@+id/sw_bool_LED1"
  118. android:layout_width="wrap_content"
  119. android:layout_height="match_parent"
  120. android:layout_below="@+id/LED1_text"
  121. android:layout_centerHorizontal="true"
  122. android:layout_centerVertical="true"
  123. android:textOff="关闭"
  124. android:textOn="开启" />
  125. </RelativeLayout>
  126. </LinearLayout>
  127. <LinearLayout
  128. android:layout_width="match_parent"
  129. android:layout_height="101dp"
  130. android:orientation="horizontal"
  131. android:scrollbars="horizontal">
  132. <!-- 温度(数值只读) -->
  133. <RelativeLayout
  134. android:layout_width="0dp"
  135. android:layout_weight="3"
  136. android:layout_height="wrap_content"
  137. android:background="@color/white"
  138. android:padding="10dp" >
  139. <ImageView
  140. android:id="@+id/Temp"
  141. android:layout_width="wrap_content"
  142. android:layout_height="wrap_content"
  143. android:layout_alignParentTop="true"
  144. android:layout_centerHorizontal="true"
  145. android:src="@drawable/wd" />
  146. <TextView
  147. android:id="@+id/tv_data_Temp"
  148. android:layout_width="wrap_content"
  149. android:layout_height="wrap_content"
  150. android:layout_below="@+id/Temp"
  151. android:layout_centerHorizontal="true"
  152. android:layout_centerVertical="true" />
  153. <TextView
  154. android:layout_marginLeft="5dp"
  155. android:id="@+id/Temp_text"
  156. android:layout_below="@+id/Temp"
  157. android:layout_toRightOf="@id/tv_data_Temp"
  158. android:layout_width="wrap_content"
  159. android:layout_height="wrap_content"
  160. android:text="℃" />
  161. <TextView
  162. android:id="@+id/Temp_text1"
  163. android:layout_toLeftOf="@id/Temp"
  164. android:layout_width="wrap_content"
  165. android:layout_height="match_parent"
  166. android:text="温度" />
  167. </RelativeLayout>
  168. <!-- 湿度(数值只读) -->
  169. <RelativeLayout
  170. android:layout_width="0dp"
  171. android:layout_height="wrap_content"
  172. android:layout_marginBottom="1dp"
  173. android:layout_weight="3"
  174. android:background="@color/white"
  175. android:padding="10dp">
  176. <ImageView
  177. android:id="@+id/Shidu"
  178. android:layout_width="wrap_content"
  179. android:layout_height="wrap_content"
  180. android:layout_alignParentTop="true"
  181. android:layout_centerHorizontal="true"
  182. android:src="@drawable/sd" />
  183. <TextView
  184. android:layout_marginLeft="5dp"
  185. android:id="@+id/Shidu_text"
  186. android:layout_below="@+id/Shidu"
  187. android:layout_toRightOf="@id/tv_data_Shidu"
  188. android:layout_width="wrap_content"
  189. android:layout_height="wrap_content"
  190. android:text="%" />
  191. <TextView
  192. android:id="@+id/tv_data_Shidu"
  193. android:layout_width="wrap_content"
  194. android:layout_height="wrap_content"
  195. android:layout_below="@+id/Shidu"
  196. android:layout_centerHorizontal="true"
  197. android:layout_centerVertical="true" />
  198. <TextView
  199. android:id="@+id/Shidu_text1"
  200. android:layout_toLeftOf="@id/Shidu"
  201. android:layout_width="wrap_content"
  202. android:layout_height="match_parent"
  203. android:text="湿度" />
  204. </RelativeLayout>
  205. <!-- 光照强度(数值只读) -->
  206. <RelativeLayout
  207. android:layout_width="0dp"
  208. android:layout_height="wrap_content"
  209. android:layout_marginBottom="1dp"
  210. android:layout_weight="3"
  211. android:background="@color/white"
  212. android:padding="10dp">
  213. <ImageView
  214. android:id="@+id/GQ"
  215. android:layout_width="wrap_content"
  216. android:layout_height="wrap_content"
  217. android:layout_alignParentTop="true"
  218. android:layout_centerHorizontal="true"
  219. android:src="@drawable/sun" />
  220. <TextView
  221. android:id="@+id/GQ_text"
  222. android:layout_marginLeft="5dp"
  223. android:layout_below="@+id/GQ"
  224. android:layout_toRightOf="@id/tv_data_GQ"
  225. android:layout_width="wrap_content"
  226. android:layout_height="match_parent"
  227. android:text="lx" />
  228. <TextView
  229. android:id="@+id/tv_data_GQ"
  230. android:layout_width="wrap_content"
  231. android:layout_height="wrap_content"
  232. android:layout_below="@+id/GQ"
  233. android:layout_centerHorizontal="true"
  234. android:layout_centerVertical="true" />
  235. <TextView
  236. android:id="@+id/GQ_text1"
  237. android:layout_toLeftOf="@id/GQ"
  238. android:layout_width="wrap_content"
  239. android:layout_height="match_parent"
  240. android:text="光强" />
  241. </RelativeLayout>
  242. </LinearLayout>
  243. <!-- 温度阈值范围(数值可写) -->
  244. <RelativeLayout
  245. android:layout_width="match_parent"
  246. android:layout_height="wrap_content"
  247. android:layout_marginBottom="1dp"
  248. android:background="@color/white"
  249. android:padding="10dp" >
  250. <TextView
  251. android:layout_width="wrap_content"
  252. android:layout_height="match_parent"
  253. android:text="温度阈值范围(℃)" />
  254. <TextView
  255. android:id="@+id/tv_data_Temp_AlarmScope"
  256. android:layout_width="110dp"
  257. android:layout_height="wrap_content"
  258. android:layout_alignParentRight="true"
  259. android:textSize="16sp"
  260. android:gravity="end" />
  261. <LinearLayout
  262. android:layout_width="match_parent"
  263. android:layout_height="wrap_content"
  264. android:layout_below="@+id/tv_data_Temp_AlarmScope"
  265. android:layout_marginTop="10dp"
  266. android:gravity="center_vertical"
  267. android:orientation="horizontal" >
  268. <TextView
  269. android:layout_width="wrap_content"
  270. android:layout_height="wrap_content"
  271. android:textSize="16sp"
  272. android:text="0" />
  273. <SeekBar
  274. android:id="@+id/sb_data_Temp_AlarmScope"
  275. android:thumb="@drawable/bar1"
  276. android:thumbOffset="0dp"
  277. android:layout_width="0dp"
  278. android:layout_height="wrap_content"
  279. android:layout_weight="3"
  280. android:max="50" />
  281. <TextView
  282. android:layout_width="wrap_content"
  283. android:layout_height="wrap_content"
  284. android:textSize="16sp"
  285. android:text="50" />
  286. </LinearLayout>
  287. </RelativeLayout>
  288. <!-- 湿度阈值范围(数值可写) -->
  289. <RelativeLayout
  290. android:layout_width="match_parent"
  291. android:layout_height="wrap_content"
  292. android:layout_marginBottom="1dp"
  293. android:background="@color/white"
  294. android:padding="10dp" >
  295. <TextView
  296. android:layout_width="wrap_content"
  297. android:layout_height="match_parent"
  298. android:text="湿度阈值范围(%)" />
  299. <TextView
  300. android:id="@+id/tv_data_Shidu_AlarmScope"
  301. android:layout_width="110dp"
  302. android:layout_height="wrap_content"
  303. android:layout_alignParentRight="true"
  304. android:textSize="16sp"
  305. android:gravity="end" />
  306. <LinearLayout
  307. android:layout_width="match_parent"
  308. android:layout_height="wrap_content"
  309. android:layout_below="@+id/tv_data_Shidu_AlarmScope"
  310. android:layout_marginTop="10dp"
  311. android:gravity="center_vertical"
  312. android:orientation="horizontal" >
  313. <TextView
  314. android:layout_width="wrap_content"
  315. android:layout_height="wrap_content"
  316. android:textSize="16sp"
  317. android:text="20" />
  318. <SeekBar
  319. android:id="@+id/sb_data_Shidu_AlarmScope"
  320. android:thumb="@drawable/bar"
  321. android:thumbOffset="0dp"
  322. android:layout_width="0dp"
  323. android:layout_height="wrap_content"
  324. android:layout_weight="3"
  325. android:max="75"
  326. android:progress="0"/>
  327. <TextView
  328. android:layout_width="wrap_content"
  329. android:layout_height="wrap_content"
  330. android:textSize="16sp"
  331. android:text="95" />
  332. </LinearLayout>
  333. </RelativeLayout>
  334. <!-- 光强阈值范围(数值可写) -->
  335. <RelativeLayout
  336. android:layout_width="match_parent"
  337. android:layout_height="wrap_content"
  338. android:layout_marginBottom="1dp"
  339. android:background="@color/white"
  340. android:padding="10dp" >
  341. <TextView
  342. android:layout_width="wrap_content"
  343. android:layout_height="match_parent"
  344. android:text="光强阈值范围(lx)" />
  345. <TextView
  346. android:id="@+id/tv_data_GQ_AlarmScope"
  347. android:layout_width="110dp"
  348. android:layout_height="wrap_content"
  349. android:layout_alignParentRight="true"
  350. android:textSize="16sp"
  351. android:gravity="end" />
  352. <LinearLayout
  353. android:layout_width="match_parent"
  354. android:layout_height="wrap_content"
  355. android:layout_below="@+id/tv_data_GQ_AlarmScope"
  356. android:layout_marginTop="10dp"
  357. android:gravity="center_vertical"
  358. android:orientation="horizontal" >
  359. <TextView
  360. android:layout_width="wrap_content"
  361. android:layout_height="wrap_content"
  362. android:textSize="16sp"
  363. android:text="0" />
  364. <SeekBar
  365. android:id="@+id/sb_data_GQ_AlarmScope"
  366. android:thumb="@drawable/bar2"
  367. android:thumbOffset="0dp"
  368. android:layout_width="0dp"
  369. android:layout_height="wrap_content"
  370. android:layout_weight="3"
  371. android:max="65535" />
  372. <TextView
  373. android:layout_width="wrap_content"
  374. android:layout_height="wrap_content"
  375. android:textSize="16sp"
  376. android:text="65535" />
  377. </LinearLayout>
  378. </RelativeLayout>
  379. </LinearLayout>
  380. </ScrollView>
  381. </LinearLayout>
  382.  

2.5、安装软件
因为我们的程序编译无错误,故开始安装app,用数据线将电脑和手机连接,进入手机的开发者模式,打开开发者模式,允许进行USB调试

然后在android studio端点击运行,app便安装成功了

原文转载于:https://blog.csdn.net/Zgc6666/article/details/104187111

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /2 下一条