Android实战技巧之十三:APK签名

Android程序要运行就必须有签名。平时我们用的debug版是用的debug签名,不用我们关心。当我们自己发布程序时,就需要自己的签名了。其实无论用哪个IDE开发,最终只是用了keytool和jarsigner这两个java工具来完成签名任务(在jdk的bin目录下)。其中keytool用来生成keystore(证书),jarsigner用来做签名。

keytool用法举例如下:

keytool -genkey -alias lincapp -keyalg RSA -keysize 1024 -keypass android -validity 365 -keystore lincapp.keystore -storepass android

jarsigner用法举例如下:

jarsigner -keystore lincapp.keystore -signedjar lincapp_signed.apk lincapp.apk lincapp

其实我们直接使用IDE提供的签名功能会更方便一些。

Eclipse:

项目右键—>Android Tools—>Export Singed Application Package,简单填写信息就可以了。注意要记住密码。

Android Studio:

Build—>Generate Signed APK, 过程与Eclipse类似。

参考:

http://www.cnblogs.com/ok-lanyan/archive/2013/04/02/2995462.html

时间: 2024-11-05 18:49:38

Android实战技巧之十三:APK签名的相关文章

Android实战技巧之四十三:终止一个线程引起的

这是一道老牌面试题.通常面试官会问你对Java线程的了解,然后再问此问题. 从理论到实践,这是一条好路子. 线程是操作系统实现多任务的一种方式,可以理解为线程是一个任务的执行单元.比如Android系统中每个App都会有自己的主线程,同时还可以创建worker thread"并行"为我们工作. Java中创建新线程的方法 Java对线程(Thread)提供了语言级的支持(依托虚拟机吧).java.lang包下有Thread类和Runnable接口,都可以替你完成创建新线程的工作. 1.

Android实战技巧之三十三:android.hardware.camera2使用指南

API 21中将原来的camera API弃用转而推荐使用新增的camera2 API,这是一个大的动作,因为新API换了架构,让开发者用起来更难了. 先来看看camera2包架构示意图: 这里引用了管道的概念将安卓设备和摄像头之间联通起来,系统向摄像头发送Capture请求,而摄像头会返回CameraMetadata.这一切建立在一个叫作CameraCaptureSession的会话中. 下面是camera2包中的主要类: 其中CameraManager是那个站在高处统管所有摄像投设备(Cam

Android实战技巧:深入解析AsyncTask

AsyncTask的介绍及基本使用方法 关于AsyncTask的介绍和基本使用方法可以参考官方文档和Android实战技巧:多线程AsyncTask这里就不重复. AsyncTask引发的一个问题 上周遇到了一个极其诡异的问题,一个小功能从网络上下载一个图片,然后放到ImageView中,是用AsyncTask来实现的,本身逻辑也很简单,仅是在doInBackground中用HTTP请求把图片的输入流取出,然后用BitmapFactory去解析,然后再把得到的Bitmap放到ImageView中

Android实战技巧:ViewStub的应用

Android实战技巧:ViewStub的应用

Android实战技巧之二十七:Maven编译开源二维码扫描项目zxing

拥有自己的手机软件工具箱是件非常有意义的事情.就目前国内Android的生态环境来说,混乱的不能再乱了.由于我们登录不了官网App商店,下软件就只好在国内五花八门的软件市场下载.由于这些市场的监管不力,什么样的软件都有,就拿二维码扫描软件来说,好多都带那种狗皮膏药一样的广告插件,真是特别讨厌. 在开源世界中有很多优秀的软件,其中zxing就是非常好的Android扫碼工具软件.我们可以拿来即用还可以学习内部机制,然后做些定制化个性化.既可以自己享用,又可以跟大家分享.真是不错. zxing在gi

Android实战技巧之十一:Android Studio和Gradle

经过两个多月的AS体验,我认为是时候将Android的开发环境迁移到AS上了.目前最新版本是1.0.2,除了UI控件拖拽偶尔崩溃的问题(Ubuntu),其他功能用来还是十分流畅和高效.打动我的有如下几个特色: 智能感知体验特好,堪比VS 布局预览,手写布局后预览页面即时显示,便于布局调整和优化 编辑速度飞快流畅,毫无eclipse的卡顿 布局或源码中有图标和颜色的预览,十分直观 调试时体验极佳 集成了Terminal,喜欢命令行操作的伙伴不用额外启动终端了. 总之一句话,就是用起来特别爽! An

Android实战技巧之十八:adb取出安装在手机中的apk

场景: 朋友看见你Android手机中的游戏或应用很好玩,也想装一个此程序,但限于网络条件不能从网上下载.那么最简单的办法就是直接从你手机中将此apk扣出来给他安装上. pm命令 第一步,找到程序的包名 借助adb shell pm命令,将安装的所有应用包名列出来: $ adb shell pm list packages package:android package:cn.wps.moffice package:com.android.backupconfirm package:com.an

Android实战技巧之二十三:Android Studio的NDK开发

较新的NDK版本是r10b,Android Studio对NDK开发的支持还处于构思阶段,所以很多工作比如用javah生成头文件等工作还要自己做.今天用一个例子来演示AS中的NDK开发. 新建一个项目SecondNdkTest 在此项目中新建一个Module叫ndklibrary,作为so库单独划出来.在library中新建一个java类SecondLib,内容如下: package com.linc.ndklibrary; /** * Created by linc on 15-3-29. *

Android实战技巧之二十八:启动另一个App/apk中的Activity

Android提供了在一个App中启动另一个App中的Activity的能力,这使我们的程序很容易就可以调用其他程序的功能,从而就丰富了我们App的功能.比如在微信中发送一个位置信息,对方可以点击这个位置信息启动腾讯地图并导航.这个场景在现实中作用很大,尤其是朋友在陌生的环境找不到对方时,这个功能简直就是救星. 本来想把本文的名字叫启动另一个进程中的Activity,觉得这样才有逼格.因为每个App都会运行在自己的虚拟机中,每个虚拟机跑在一个进程中.但仔细一想,能够称为一个进程,前提是这个App