最近几天用Google的Design库写了个App,使用Android Studio将app打包时遇到的几个瓶颈,所以把详细步骤写入下来。


AS中怎么获取应用签名

这和eclipse不同,eclipse中可以直接在软件内部查找到,而AS则需要通过命令行形式拿到,具体先进入.android目录下,如图:

AS将应用打包

AS版本1.3,步骤都以截图为示例:

  • AS中Build->选择Generate signed APK,然后选择需要打包的应用,如:

  • 选择应用后进入这个界面:

    因为我之前打过包这里就有之前的keyStore密钥文件,一般第一次打包我们需要重新创建一个.jks密钥库文件,所以我们选择Create new…后,进入下面这个界面:

    第一个是叫我们指定密钥库文件路径,我们选择在f盘下的keyStoreDemo目录,并把这个密钥库命名为keyStore.jks:

    点击确认后,如图:

    其中:

    password/confirm -设置密钥库的密码

    key
  • Alias -密钥名称
  • password/confirm -设置密钥的密码
  • Validity -密钥有效时间

    然后下面的就是填一些地区、公司等信息,这些都比较随便啦,不过至少需要填一项,如:

    然后点击OK后,又回到了刚刚打包那个界面,这时候密钥和密码已经自动填上去了,我们只需要点击Next,

    然后最后点击Finish,

    如果你的应用没出什么错的话,就打包完成啦。接着你就可以在你的项目目录下找到打包好的apk了。

AS将应用代码混淆

AS中代码混淆我们需要配置gragle文件中

为ture,表示是否进行代码混淆,之后在proguard-rules.pro文件中配置你的混淆代码即可。

下面说一下我在进行代码混淆后再打包时候遇到的一个错误,我是使用了Design库,然后在混淆文件中加入了:

发现打包时候报这样的异常no resource identifier found for attribute ‘layout_behaviour’ in package *,然后查资料,发现根本不用理会它会对Design包进行混淆,删了即可,之后打包成功!

——本文旨在帮助刚刚接触AS且不熟悉的同学们,大牛们回避撸代码去~~~

使用Android Studio手把手教你将应用打包+代码混淆的更多相关文章

  1. 手把手教你调试Linux C++ 代码(一步到位包含静态库和动态库调试)

    手把手教你调试Linux C++ 代码 软件调试本身就是一项相对复杂的活动,他不仅要求调试者有着清晰的思路,而且对调试者本身的技能也有很高的要求.Windows下Visual Studio为我们做了很 ...

  2. [转]Android Studio系列教程六--Gradle多渠道打包

    转自:http://www.stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ Android Studio系列教程六--Grad ...

  3. Android Studio系列教程六--Gradle多渠道打包

    Android Studio系列教程六--Gradle多渠道打包 2015 年 01 月 15 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzh ...

  4. C#:手把手教你用C#打包应用程序(安装程序卸载程序)

    摘要:本文介绍在C#中手把手教你用C#打包应用程序(安装程序卸载程序) 1:新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点 ...

  5. Android Studio如何配置CURL指令一键打包apk上传至蒲公英

    Android Studio如何配置CURL指令一键打包apk上传至蒲公英 第一步:在所需要打包的模块build.gradle文件中加入如下代码: android{ buildTypes { //配置 ...

  6. android打包代码混淆

    android应用打包代码混淆:   1.将project.propertier文件中的proguard.config=proguard-android.txt打开  拷贝指定的文件到应用中 2.更改 ...

  7. Android Studio的使用(八)--// TODO代码

    我们都知道Eclipse存在// TODO代码,该段代码在方法中用于标识该方法仍未完成,也可以用于作为该方法的一个快捷键.例如我们可以用于标识onClick()方法,当我们需要查找onClick()方 ...

  8. Android Studio向项目添加C/C++原生代码教程

    说明:本文相当于官方文档的个人重新实现,官方文档链接:https://developer.android.com/studio/projects/add-native-code 向项目添加C/C++代 ...

  9. 在Android Studio 和 Eclipse 的 git 插件操作 "代码提交"以及"代码冲突"

    面向对象:曾经使用过SVN的同学. (因为Git 它 可以说是双重的SVN (本地一个服务器,远程一个服务器)),提交代码要有两次步骤,先提交到本地服务器,再把本地服务器在提交到远程服务器. 所以连S ...

随机推荐

  1. tomcat启动批处理——setclasspath.bat

    除了上面两个批处理,还有一个比较重要的脚本,即是setclasspath.bat,它主要负责寻找.检查JAVA_HOME和JRE_HOME两个变量. ************************* ...

  2. Android性能提升之强引用、软引用、弱引用、虚引用使用

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52637333 背景:收到公众投稿 ...

  3. linux crontab定时任务详解

    1.  为当前用户创建cron服务: crontab  -e 例如 文件内容如下(每隔1分钟执行sql脚本): */1 * * * * mysql -h127.0.0.1 -uroot -proot ...

  4. Android 5.1 添加硬件抽象层(HAL)和JNI接口总结

    点击打开链接

  5. javascript之cookie对象

    属性 name          唯一必须设置的属性,表示cookie的名称 expires       指定cookie的存活周期,如不设置,浏览器关闭自动失效 path           决定c ...

  6. Android开发学习之路--Service之初体验

    android最后一个组件便是service了,终于学习到最后一个组件了,从年前的开发环境的搭建,到现在学到最后一个组件花了三周的时间,期间记录的点点滴滴,照着书本学习编写的代码都受益匪浅,这里要感谢 ...

  7. JAVA代码规范笔记(下)

    声明 17.推荐一行一个声明,因为这样有利于写注释.换句话说,下面的声明方法中, int level; // indentation level int size; // size of table ...

  8. SIMPLE_DEV_PM_OPS宏

    SYSTEM_SLEEP_PM_OPS和dev_pm_ops的定义: [cpp] view plain copy #define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, ...

  9. UNIX网络编程——僵尸进程

         在fork()/exec()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进 ...

  10. UNIX网络编程——TCP回射服务器/客户端程序

    下面通过最简单的客户端/服务器程序的实例来学习socket API. serv.c 程序的功能是从客户端读取字符然后直接回射回去: #include<stdio.h> #include&l ...