
# 编译及代码工程设置
#### SDK编译
1. 使用Android studio创建Android工程，并设置包名为com.huaweicloud.sdk.iot.device。 
   图1Android studio创建Android工程   
   ![](https://support.huaweicloud.com/sdkreference-iothub/figure/zh-cn_image_0000002395319097.png "点击放大")
   
   
2. 下载[iot-device-sdk-android](https://github.com/huaweicloud/huaweicloud-iot-device-sdk-Android)工程中java源码到com.huaweicloud.sdk.iot.device包下面。
   
   图2java源码到复制到包下面   
   ![](https://support.huaweicloud.com/sdkreference-iothub/figure/zh-cn_image_0000002361479694.png "点击放大")
   
   
3. 配置app目录下build.gradle。 
   1. 在build.gradle中修改部分代码，具体修改如下。
      图3Android SDK删除配置数据   
      ![](https://support.huaweicloud.com/sdkreference-iothub/figure/zh-cn_image_0000002361642522.png "点击放大") 
   
   2. 在build.gradle中添加以下编译脚本。
      ```
      task cleanJar(type: Delete){
          //删除存在的
          delete 'build/libs/com.huaweicloud.sdk.iot.device-1.0.0.jar'
          delete 'build/libs/classes/'
      }
      task copyJavaclasses(type: Copy) {
          //设置拷贝的文件
          from('build/intermediates/javac/release/classes')
          //打进jar包后的文件目录
          into('build/libs/')
      }
      task makeJar(type: Exec){
          workingDir 'build/libs/'
          commandLine 'cmd', '/c', 'jar cvf com.huaweicloud.sdk.iot.device-1.0.0.jar -C ./ .'
      }
      cleanJar.dependsOn(build)
      copyJavaclasses.dependsOn(cleanJar)
      makeJar.dependsOn(copyJavaclasses)
      ```
      
   
   3. 在build.gradle中dependencies增加以下三个依赖。
      ```
      implementation 'com.google.code.gson:gson:2.8.6'
      implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5'
      implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
      ```
      
   
   4. Android工程配置完成后，执行build.gradle中task makeJar(请确保java已经添加到环境变量)生成jar包。
      图4Android SDK生成jar包   
      ![](https://support.huaweicloud.com/sdkreference-iothub/figure/zh-cn_image_0000002361646458.png "点击放大") 
   
   5. 查看jar包位于app/build/libs目录下。
      图5获取jar包   
      ![](https://support.huaweicloud.com/sdkreference-iothub/figure/zh-cn_image_0000002361487490.png "点击放大") 
   
   
   
   
 
#### 代码工程配置
1. 在工程app/libs下添加生成的Jar包。
2. 在build.gradle中添加以下依赖。 
   ```
   implementation fileTree(dir: "libs", include: ["*.jar"])
   implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
   implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5'
   implementation 'com.google.code.gson:gson:2.8.6'
   implementation group: 'org.bouncycastle', name: 'bcpkix-jdk15to18', version: '1.68'
   implementation group: 'org.bouncycastle', name: 'bcprov-jdk15to18', version: '1.68'
   implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '4.9.1'
   ```
   
   
3. 在AndroidManifest.xml文件中添加以下网络权限。 
   ```
   <uses-permission android:name="android.permission.INTERNET" />
   ```
   
   
 
