版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linxinfa/article/details/88953267
1 sdk下载
下载HMSAgent_2.6.3.301.zip
我用的是Eclipse工程,所以下载hmssdk-eclipse-2.6.3.301.zip
2 生成jar
解压上面的两个zip,进入HMSAgent_2.6.3.301目录
看到文档里说要执行Buildcopysrc2jar.bat来生成jar,但是过程中一堆问题,放弃治疗,自己写python脚本生成jar
新建目录: copysrc 和 libs
然后把hmsagents/src/main中的文件复制到copysrc中
接着把hmssdk-eclipse-2.6.3.301中各个模块的libs中的jar拷贝到上面的新建的libs目录中
接下来编写python脚本: build_jar.py (用的是python2的语法)
# -*- encoding:utf-8 -*-
import os
import subprocess
import shutil
#注意这里要根据你的android.jar的目录来设置
android_jar_path=r"D:\Android_6.0_sdk\Android_6.0_sdk\platforms\android-23\android.jar"
java_dir="copysrc/java"
lib_dir="libs"
out_jar_name ="hwsdk.jar"
######################################################
# 拼接java文件
def ls_java_file(dir_path):
for r, _, fls in os.walk(dir_path):
for f in fls:
if f.endswith(".java"):
yield os.path.join(r, f)
# 拼接jar文件
def ls_jar_file(dir_path):
for r, _, fls in os.walk(dir_path):
for f in fls:
if f.endswith(".jar"):
yield os.path.join(r, f)
def build_cmd(android_jar_path, java_dir, lib_dir, out_jar_name):
args = "javac -encoding utf-8 -bootclasspath".split()
args.append(android_jar_path)
args.append("-cp")
args.append(";".join([ a for a in ls_jar_file(lib_dir)]) )
args.append(u"-d")
args.append(u"bin")
for jf in ls_java_file(java_dir):
args.append(jf)
print args
p = subprocess.Popen(args, stdin=subprocess.PIPE,stderr=subprocess.PIPE)
p.wait()
print p.stderr.read()
args=["jar","cvf", out_jar_name, "bin"]
p = subprocess.Popen(args, stdin=subprocess.PIPE,stderr=subprocess.PIPE)
p.wait()
print p.stderr.read()
print
def make_bin_dir():
if os.path.exists("bin"):
shutil.rmtree("bin")
os.mkdir("bin")
if '__main__' == __name__:
make_bin_dir()
build_cmd(android_jar_path, java_dir, lib_dir,out_jar_name)
把 build_jar.py 放到HMSAgent_2.6.3.301目录中,注意脚本中的android_jar_path的值的设置
运行build_jar.py,即会生成一个bin目录和一个hwsdk.jar,bin目录中就是生成的.class文件,我们只需要最终的hwsdk.jar
3 将sdk导入工程
把hwsdk.jar和各个模块的jar都导入到Unity工程的Plugins/Android/libs中
4 写java中间件,封装sdk接口,供Unity的C#调用
(未完待续)