ionicandroid
⑴ 如何使用ionic打包android的apk
ionic打包apk主要分为几个步骤:
1、安装java的JDK,并配置好环境变量
2、安装AndroidSDK,并配置好环境变量;这里JDK和andriodSDK的安装和配置都很重要,必须安装好JDK和AndroidSDK,才可以进行下面的打包,否则是打不了包的。
3、下载安装nodejs,这里的nodejs主要是要来对打包所需模块进行管理
4、使用命令:npm install -g cordava ionic来安装cordova和ionic
5、切换到刚才nodejs的安装根目录下,使用命令:ionic start myApp blank创建一个项目,其中myAPP是项目的名称,可以由自己命名,blank表示创建一个空项目
6、切换到刚才创建的项目myApp目录下面,cd myApp
7、ionic platform add android //该命令会创建一个platform目录,最后生成的apk是放在该目录下的
8、ionic build android //生成apk文件,至于apk具体的存放目录,打包成功时会有说明
经过上面几步的操作,ionic打包apk便已完成。
⑵ ionic 打包apk的时候可以指定android 平台版本么
参考如下内容,应该是不行的:
android打包
能使用Ionic来开发app的很可能对Ios和android的app打包发布流程不是很熟悉,我这里简单说明下:
Android
Android的打包比较简单执行命令:
1
ionic build android -release
找到www/platform目录下生成的apk包,此时的apk还不能被安装到手机上,还需要一步签名操作,大家可以参考:
http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html
创建key,需要用到keytool.exe (位于jdk1.6.0_24\jre\bin目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于jdk1.6.0_24\bin目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入
D:\>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
/*说明:-genkey 产生密钥
-alias demo.keystore 别名 demo.keystore
-keyalg RSA 使用RSA算法对签名加密
-validity 40000 有效期限4000天
-keystore demo.keystore */
D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息
-keystore demo.keystore 密钥库位置
-signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/
注意事项:android工程的bin目录下的demo.apk默认是已经使用debug用户签名的,所以不能使用上述步骤对此文件再次签名。正确步骤应该是:在工程点击右键->Anroid Tools-Export Unsigned Application Package导出的apk采用上述步骤签名。
⑶ 如何配置android studio环境实现ionic的编译,运行与打包
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:配置的是类的路径;
⑷ ionic框架如何判断是ios还是android登陆
安装环境
首先应该安装好 node.js (略),然后安装cordova、ionic等
sudo npm install -g cordova ionic ios-sim
创建不同类型的项目
目前可以用blank,tabs,sidemenu三种
ionic start myApp tabs
常用插件
cordova plugin add com.ionic.keyboard && cordova plugin add org.apache.cordova.console && cordova plugin add org.apache.cordova.device && cordova plugin add org.apache.cordova.device-motion && cordova plugin add org.apache.cordova.file && cordova plugin add org.apache.cordova.file-transfer && cordova plugin add org.apache.cordova.geolocation && cordova plugin add org.apache.cordova.inappbrowser && cordova plugin add org.apache.cordova.network-information && cordova plugin add org.apache.cordova.splashscreen && cordova plugin add org.apache.cordova.camera && cordova plugin add com.google.cordova.admob
测试运行
cd myApp
ionic platform add ios
ionic build ios
ionic emulate ios #会打开ios的模拟器
ionic run andoird #真机测试,需要先platform add andoird和build android
ionic serve #也可以先在浏览器里看效果,如果chrome安装了livereload插件,可以实现代码编辑时界面即时变化
直接编辑IOS或Android工程
可以直接用xcode或其他IDE来编辑 /platforms/xxxx/ 下的工程,但要注意的是,应该以项目根目录下的 /www/ 文件为主,而不要编辑/platforms/ios/www/ 里的文件。运行下面的命令会自动用 /www/ 覆盖 /platforms/ios/www 里的文件
cordova prepare ios
www文件夹结构与文件分析
开发项目
发布应用在生成之前,去掉不需要的插件
cordova plugin rm org.apache.cordova.console
发布到android 未完签名。
⑸ ionic build android 和 cordova build android 有什么区别
Ionic 底层打包使用 Cordova ( 和 Phonegap 一样 ) 底层打包用 Cordova 是不错的。 Ionic 是一个全堆栈的混合应用开发框架,可以理解成 Ionic = Cordova + AngularJS + Ionic UI
⑹ ionic修改完代码用,需要在重新编译一下android吗
1、Tabs必须是预加载的,创建项目默认就是预加载,不用动。
2、访问的页面必须是懒加载页面,只有是懒加载页面访问时才会有具体的url页面锚点地址,刷新后页面才会停留在当前页面。
3、默认的三个主界面,刷新要停留在当前,需要改成懒加载方式(最简单的方法:删除已有预加载页面,使用ionic g page重新创建即为懒加载页面,别忘了删除app.mole中声明语句,页面访问时使用类名字符串。)
⑺ 如何用gradle执行ionic build android
如何用gradle执行ionic build android –release的时候自动签名
假设android的platform和keystore已经有了,可以看到如下目录结构
其中release-signing.properties这个时候应该是没有的,现在咱们新建一个release-signing.properties
storeFile=YiShangpu.keystore
key.store.password=your password
key.alias=YiShangpu
key.alias.password=your password
为什么要新建这个文件呢?
可以参考官方的文档
(default: release-signing.properties)
Path to a .properties file that contains signing information for release builds. The file should look like:
storeFile=relative/path/to/keystore.p12
storePassword=SECRET1
storeType=pkcs12
keyAlias=DebugSigningKey
keyPassword=SECRET2
storePassword and keyPassword are optional, and will be prompted for if omitted.
对比自己新建的内容和官方文档是有出入的,那为什么自己的需要用key.store.password这种写法呢?
回到项目中,打开build.gradle,找到 addSigningProps。
def addSigningProps(propsFilePath, signingConfig) {
def propsFile = file(propsFilePath)
def props = new Properties()
propsFile.withReader { reader ->
props.load(reader)
}
def storeFile = new File(props.get('key.store') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'storeFile'))
if (!storeFile.isAbsolute()) {
storeFile = RelativePath.parse(true, storeFile.toString()).getFile(propsFile.getParentFile())
}
if (!storeFile.exists()) {
throw new FileNotFoundException('Keystore file does not exist: ' + storeFile.getAbsolutePath())
}
signingConfig.keyAlias = props.get('key.alias') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'keyAlias')
signingConfig.keyPassword = props.get('keyPassword', props.get('key.alias.password', signingConfig.keyPassword))
signingConfig.storeFile = storeFile
signingConfig.storePassword = props.get('storePassword', props.get('key.store.password', signingConfig.storePassword))
def storeType = props.get('storeType', props.get('key.store.type', ''))
if (!storeType) {
def filename = storeFile.getName().toLowerCase();
if (filename.endsWith('.p12') || filename.endsWith('.pfx')) {
storeType = 'pkcs12'
} else {
storeType = signingConfig.storeType // "jks"
}
}
signingConfig.storeType = storeType
}
红色的部分便是原因了。
注意:keystore的路径需要根据实际情况设置。
最后执行如下命令即可获得签名后的apk文件。
$ ionic build android —release
your password
⑻ ionic 做移动应用怎么样
我觉得这个移动应用不怎么样,甚至觉得还很差。不建议大家用。
代码混淆
某些应用信息需要存储在本地以便后面使用,最简单的本地存储是window.localStorage,我们可以将数据以键值对的形式进行存储。在ios,android中,对window.localStorage均有5Mb的限制,并且在手机内存紧张的情况下会清空window.localStorage。因此window.localStorage并不适合做为数据的持久化方式。
总结:我觉得还是经典的做移动应用比较好吧,这个太专业,不好过多评论。
⑼ 为什么ionic运行的ionic build android会出错
空间不够,运行不够。