注:给咱们本身开发的app签名,就表明着我本身的版权,之后要进行升级,也必需要使用相同的签名才行。签名就表明着本身的身份(即keystore),多个app可使用同一个签名。html
若是不知道签名是啥意思,请自行百度哦。在eclipse中签名的方法是:选中工程,邮件选择"export-android-export android application",android
一、方式1:经过Android Studio进行签名:app
选中app这个module,选择菜单栏"Build-Generate signed apk":eclipse
弹出以下界面:gradle
上图中,若是你是第一次使用签名,就单击红框部分建立一个新的签名;若是你以前有过签名的文件,就选择蓝框部分进行导入便可。那我就先选择红框部分吧:ui
上图中,点击"finish"以后,能够看到Android Studio的最下方显示:Gradle正在执行assembleRelease这样一个任务,以下图所示:url
生成签名好的apk以后,会弹出提示:spa
二、方式2:经过命令行的方式进行签名:命令行
(1)加载Key Store:3d
咱们先删掉上面的经过第一种方式所签名的apk文件。接下来进行第二种方式来签名,即命令行的方式。
打开Project Stucture图形化界面:
上图中,选中app这个module,而后切换到singning标签栏,紧接着点击添加,而后生成release签名信息,紧接着点击"OK"。接着作以下操做:
上图中,切换到Build Types标签,将Signing config选择为"release",即将刚刚生成的release签名信息配置进去。
操做完成以后,咱们能够看到app这个module的build.gradle文件多出了以下红框部分的代码:
而后执行菜单栏的"build-clean Project":
(2)生成realease版本的apk:
紧接着在命令行Terminal输入以下命令:(AS已经将命令行Terminal集成到了软件当中)
gradlew assembleRelease
若是运行成功,效果以下:
生成的签名好的apk在以下位置:
三、为何要使用gradlew命令而不是gradle命令:
在HelloWorld工程目录下有一个gradle文件夹,在gradle/wrapper目录下有一个gradle-wrapper.properties文件,打开它:
上图表明着HelloWorld这个工程所依赖的gradle的版本信息。上图的红线表示,若是咱们的工程中没有gradle,软件会根据这个url去下载gradle,终于知道为啥第一次打开AS时会这么慢了吧?
若是咱们执行了gradlew命令,其实是执行上面的gradle wrapper,而后找到咱们已经下载好的gradle 2.2.1。若是如今有不少个工程,可是每一个工程的gradle版本都不同,我就必需要将每一个版本的gradle都要配置到环境变量当中,而执行了gradlew命令,就会避免这个麻烦。