ionic android 性能,ionic开发Android App学习笔记(一)

简介

ionic是一个强大的混合式/hybrid HTML5移动开发框架,特点是使用标准的HTML、CSS和JavaScript,开发跨平台的应用。

ionic特点:漂亮的界面 追求性能  专注原生 免费开源

既然是开源的,就不得不提一下它的源代码地址:

已经有2万个star。

环境搭建

上面的链接是Node的官网,当然也可以去中文网站下载,选择对应的平台和版本进行下载。

ps:作者用的是mac电脑,也推荐用mac电脑进行以后的开发操作,各种命令用起来比较方便。

安装Node.js

mac版本的Node.js下载下来的直接就是一个dmg的安装包,一直点下一步就能顺利安装成功。

安装完成后,打开终端输入node -v ,出现版本号即为安装成功,如下图。

8b565c3a6f48?winzoom=1

查看node版本号

安装cordova和ionic

node安装成功后,打开终端,执行 npm install -g cordova ionic 命令,如果出现无法写入的权限,则执行sudo npm install -g cordova ionic 输入mac登录密码以管理员身份进行下载安装。该下载过程可能比较缓慢,花费较长的时间。安装完成后,分别执行ionic -v 和cordova -v出现相应的版本号,即为安装成功。

安装Android SDK

下载安装Android SDK这里不再多说

配置相关环境变量

笔者开始是在.bash_profile文件中配置ANDROID_HOME ,但是在做相关操作的时候却好像没有按照这个配置的路径去找sdk,报找不到相应sdk的错误,所以参考了facebook上React Native的配置,又在.bashrc中进行了相同的配置。 如果找不到这2个文件,可以通过vi命令创建文件,然后将相应的配置写入保存,然后执行

source .bash_profile和source .bashrc 即可。

创建ionic项目

相关的配置完成后,打开终端,在相应的目录下执行

ionic start myApp tabs

即可创建一个带tab页的项目,当然也可以创建其他风格的,如下

ionic start myApp blank 创建一个空白的项目

ionic start myApp sidemenu 创建一个带侧滑栏的项目

如下图即为完整的项目目录:

8b565c3a6f48?winzoom=1

目录结构

编译项目

进入项目目录,终端下执行

ionic platform add android

然后执行

ionic build android

即可进行编译,android采用的是gradle进行编译,第一次可能要去下载gradle,过程比较慢,花费较长时间。

等待,等待,出现 BUILD SUCCESSFUL 即为编译成功。

调试运行

还在当前项目目录下,执行如下命令

ionic emulate android

即可在模拟器上运行,如果没有模拟器可能会报错。

这里重点说明以下如何安装到真机上。

需要执行如下命令

ionic run --target=56112d22 android

说明:等号后面的是手机的标识码,可以通过adb devices获取到,当然前提是手机通过usb数据线连接到电脑上。

运行效果图如下:

8b565c3a6f48?winzoom=1

运行效果图

默认的情况下,tab是在上面的,上图是笔者改过之后的效果,如何将tab栏从顶部移到底部呢?

上面的链接中可能说的不是很清楚,笔者是进行如下操作的,找到

myApp/www/js/app.js 文件(ps:myApp是项目名称)

打开app.js,找到第24行,添加如下代码

.config(function ($stateProvider, $urlRouterProvider, $ionicConfigProvider) {

$ionicConfigProvider.platform.ios.tabs.style('standard');

$ionicConfigProvider.platform.ios.tabs.position('bottom');

$ionicConfigProvider.platform.android.tabs.style('standard');

$ionicConfigProvider.platform.android.tabs.position('bottom');

$ionicConfigProvider.platform.ios.navBar.alignTitle('center');

$ionicConfigProvider.platform.android.navBar.alignTitle('left');

$ionicConfigProvider.platform.ios.backButton.previousTitleText('').icon('ion-ios-arrow-thin-left');

$ionicConfigProvider.platform.android.backButton.previousTitleText('').icon('ion-android-arrow-back');

$ionicConfigProvider.platform.ios.views.transition('ios');

$ionicConfigProvider.platform.android.views.transition('android');

})

贴上改完之后完整的app.js代码

// Ionic Starter App

// angular.module is a global place for creating, registering and retrieving Angular modules

// 'starter' is the name of this angular module example (also set in a

attribute in index.html)

// the 2nd parameter is an array of 'requires'

// 'starter.services' is found in services.js

// 'starter.controllers' is found in controllers.js

angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])

.run(function ($ionicPlatform) {

$ionicPlatform.ready(function () {

// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard

// for form inputs)

if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {

cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);

cordova.plugins.Keyboard.disableScroll(true);

}

if (window.StatusBar) {

// org.apache.cordova.statusbar required

StatusBar.styleLightContent();

}

});

})

.config(function ($stateProvider, $urlRouterProvider, $ionicConfigProvider) {

$ionicConfigProvider.platform.ios.tabs.style('standard');

$ionicConfigProvider.platform.ios.tabs.position('bottom');

$ionicConfigProvider.platform.android.tabs.style('standard');

$ionicConfigProvider.platform.android.tabs.position('bottom');

$ionicConfigProvider.platform.ios.navBar.alignTitle('center');

$ionicConfigProvider.platform.android.navBar.alignTitle('left');

$ionicConfigProvider.platform.ios.backButton.previousTitleText('').icon('ion-ios-arrow-thin-left');

$ionicConfigProvider.platform.android.backButton.previousTitleText('').icon('ion-android-arrow-back');

$ionicConfigProvider.platform.ios.views.transition('ios');

$ionicConfigProvider.platform.android.views.transition('android');

})

.config(function ($stateProvider, $urlRouterProvider) {

// Ionic uses AngularUI Router which uses the concept of states

// Learn more here: https://github.com/angular-ui/ui-router

// Set up the various states which the app can be in.

// Each state's controller can be found in controllers.js

$stateProvider

// setup an abstract state for the tabs directive

.state('tab', {

url: '/tab',

abstract: true,

templateUrl: 'templates/tabs.html'

})

// Each tab has its own nav history stack:

.state('tab.dash', {

url: '/dash',

views: {

'tab-dash': {

templateUrl: 'templates/tab-dash.html',

controller: 'DashCtrl'

}

}

})

.state('tab.chats', {

url: '/chats',

views: {

'tab-chats': {

templateUrl: 'templates/tab-chats.html',

controller: 'ChatsCtrl'

}

}

})

.state('tab.chat-detail', {

url: '/chats/:chatId',

views: {

'tab-chats': {

templateUrl: 'templates/chat-detail.html',

controller: 'ChatDetailCtrl'

}

}

})

.state('tab.account', {

url: '/account',

views: {

'tab-account': {

templateUrl: 'templates/tab-account.html',

controller: 'AccountCtrl'

}

}

});

// if none of the above states are matched, use this as the fallback

$urlRouterProvider.otherwise('/tab/dash');

});

改完之后,再次运行,tab栏就移到了底部。

至此,整个ionic项目从创建到运行就都完成了。

WebStorm开发

用webstorm打开整个项目,目录结构如下:

8b565c3a6f48?winzoom=1

WebStorm项目目录结构

添加运行的module,如下图配置,即可直接在webstorm中运行ionic项目,部署到真机上

8b565c3a6f48?winzoom=1

module运行配置

就酱!!!

参考链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值