1.配置android studio 环境;
1.1配置java环境
下载jdk,jre(jre好像是跟jdk一起的,jdk1.8.0_101,jre1.8.0_101)
参考文档:如何配置jdk,jre的参考文档
配置的环境变量:PATH(jre/bin以及bin目录),ClASSPATH(lib以及lib/tools.jar目录),JAVA_HOME(jdk的安装目录)
测试配置java变量是否成功的方法是:在dos命令行输入:java -v,以及javac
1.2配置ant环境(同样需要配置环境变量)
下载地址:ant下载地址
配置环境变量:系统变量PATH(ant的bin目录环境);
测试ant安装是否成功:在dos命令行输入ant -v 如果显示ant版本说明安装成功。
1.3下载android studio(目前安装的是2.2版本的android studio;)
下载地址:android studio 下载地址
配置环境变量:系统变量:ANDEOID_HOME(SDK 目录),PATH(SDK的tools以及platform-tools目录);
测试android studio是否安装成功:dos命令行输入android -h,输出option相关信息表示成功!
备注:Path:配置包或者二进制文件夹的路径;
ClassPath:配置的是类的路径;
2.ionic的编译,运行与打包
在成功搭建好编译和运行环境的基础上,并且已经将ionic项目基本搭建完成,现在来实现编译。
首先,进入项目目录,添加Android平台,dos命令行或者Android Studio命令行(Alt+f12)输入:
ionic platform add android
然后实现编译
ionic build android
在编译过程会实现很多问题,比如:
1.网速太慢,gradle下载很慢,可以在[gradle](http://services.gradle.org/distributions)相关网站下载,然后在这样子的目录
(C:\Users\jessic\.gradle\wrapper\dists\gradle-2.13-all\7hsc6vr6mi3i6i5m7q9hj4ci1q)进行手动解压;
2.提示“please install Android target ‘Android-23’”,这个说明需要更新SDK。第一次使用Android Studio 2.2版本,很坑爹,第二天
打开ANDROID STUDIO居然看不到“绿色安卓超人下载”那个图标(就是SDK管理器),我只好去SDK目录找到“SDK Manager.exe”手动下载,
网速快的话,一个多小时就可以更新完。或者手动安装“Android-23”在“sdk/platform目录下”;
编译成功,会显示”Build Successful”,如下图
之前我以为ionic需要像phonegap在运行时通过数据线跟360手机助手连接在手机上生成apk或者手动导出(需要配置apk签字),原来ionic在编译的同时会帮助我们自动生成android-debug.apk(测试版本),目录位于ProjectDirectory\platforms\android\build\outputs\apk,后面直接安装在手机上就可以打开。
后面我想尝试直接在AS自带的模拟器上演示,首先需要配置模拟器,
ionic emulate android
它提示如下图,我按照上面指示进行操作
我还是想说Android Studio 2.2很坑(好像原生项目不会,ionic项目才会),我只好手动到SDK目录找到模拟器(AVD Manager.exe),然后配置了这么久我才发现有错误,如下图
好吧,原来是SDK android对应版本的镜像没有下载,重新启动SDK管理器下载这些镜像。
后面我先更新了sdk,然后执行
ionic emulate android
又报如下错误:
我按照里面的提示去做,发现运行android.bat 脚本还是无法解决,之后我直接配置AS的模拟器,发现ionic项目可以运行,并且安装在模拟器上。那么上面的问题就是因为没有配置ADV。
然而,打开ionic发现打不开,内存不够吗?
中间由于android ADV出现问题,很卡之类,我用了genymotion,虽然这个模拟器有点卡,但是比android studio好多了。
学习到一些新的总结:
ionic emulate android //这条命令会调用AS的模拟器并且安装app在模拟器上
ionic run android //这条命令有时候会调用AS的模拟器或者genymotion的模拟器
cordova run android //跟上条命令功能很像
adb devices//检查有哪些设备
ADB:android debug bridge;