java签名apk代码 java实现签名apk

用java或C#调用命令行对android工程进行编译、打包和签名,急求!!

Android本身是支持ant打包项目的,并且SDK中自带一个build.xml文件。

创新互联公司于2013年成立,是专业互联网技术服务公司,拥有项目成都网站建设、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元徐水做网站,已为上家服务,为徐水各地企业和个人服务,联系电话:028-86922220

通过该文件,可以对文件进行编译、打包、安装等。并且支持多种方式打包,如debug或者release。

一般的,可以按照如下方法进行操作:

首先创建一个Android工程。

工程创建好后,需要为工程添加ant支持,即创建相应的build.xml文件。

这个文件不需要用户自己创建,只需要执行如下命令即可:

sdk/tools/android update project -p project -t target

其中:

sdk为sdk的安装目录,其下的tools/android是我们要使用的命令。

project为项目目录。

target为项目所使用的android的target id,也就是项目对应的android的版本。

可以将sdk的tools目录添加到环境变量 ~/.bashrc 文件中,重启后生效,以后可以直接使用命令了。

可以通过执行以下命令查看当前sdk中所包含的target以及相应id:

android list targets

执行完android update project命令后,会在项目的根目录下生成相应的ant文件。

主要有build.xml、ant.properties、local.properties三个文件。

如果没有ant.properties文件,可以自己手动添加。

其中,build.xml文件是进行ant build的主要文件,它引用了其它的文件。

在local.properties文件中定义了sdk.dir属性,也就是当前使用的sdk的目录。

在ant.properties文件中,可以定义自己的一些属性,或者重定义一些属性。

当然,这两个属性文件可有可无,直接定义到build.xml中也没有关系。

在build.xml中的最后,引用了sdk目录下的tools/ant/build.xml文件。

这个是sdk默认的build文件,可以将其内容直接拷贝过来,也可以保持当前的引用方式。

项目下的build.xml默认执行的target是help,运行后可以看到相关的帮助信息。

通过帮助信息,可以看到其它可用的target。

一般的,我们需要修改为debug或者release。

修改好之后,再运行build.xml文件,就会执行我们需要的编译过程了。

build.xml文件的执行方法为:右键-Run As-Ant Build。

如果是debug版的话,默认会使用debug方式签名。

如果是release版的话,需要指定相应的keystore以及私钥。

否则,最后只能生成一个没有签名的apk文件。

设定私钥库的方法是,在ant.properties文件中,添加如下内容:

key.store=keystore

key.alias=key

key.store.password=keystore pwd

key.alias.password=key pwd

其中:

keystore为私钥库文件。

key为签名需要使用的私钥。

key.store.password为私钥库的密码。

key.alias.password为私钥的密码。

两个密码相关的属性也可以不添加,而只添加私钥库及私钥。

这样的话,执行时会依次弹出相应的输入框,提示用户输入相应的密码。

这样虽然相对繁琐,但是由于没有明文指定密码,对私钥库的保护会更好一些。

如果项目引用了第三方库的话,只需要在项目根目录创建libs文件夹并将其放入即可。

如果是jar库,直接放到libs目录下;如果是so库,需要放到libs的名为armeabi的子目录下。

也可以通过设定相应的属性来指定第三方库的位置,其默认都是libs文件夹。

jar.libs.dir为jar类型库所在的目录。

native.libs.absolute.dir为so类型库所在的目录,即armeabi的父目录。

如果项目包含了jni代码,希望在打包时自动重新编译so库,可以修改build.xml文件。

修改方法为,在引用sdk的build.xml文件之前添加如下target:

target name="-pre-build" depends="-ndk-build"

/target

target name="-ndk-build"

exec executable="ndk-build" failonerror="true"

arg value="clean" /

/exec

exec executable="ndk-build" failonerror="true" /

/target

ndk-build为ndk提供的命令,需要将ndk安装目录添加到环境变量中,添加方法同sdk/tools。

生成的so默认会放到libs/armeabi目录下。

使用默认的build.xml打包apk时,已经包含了混淆、签名、对齐优化等相关过程。

如果是使用release的方式,最后生成的apk文件已经可以直接发布了。

Android开发对apk文件进行签名

对apk签名的步骤(适用于找回apk,对空包进行签名)

1.复制java的jdk,bin目录的绝对路径(如果是默认安装应该和我的路径差不多)C:\Program Files\Java\jdk1.8.0_111\bin

2.进入cmd窗口,进入bin目录(如果是新手,输入cd C:\Program Files\Java\jdk1.8.0_111\bin)

输入命令   jarsigner -verbose -keystore d:\project\360Wallpaper.keystore -signedjar d:\qihusign.apk d:\Qihuunsign.apk QIHU360

将签名修改成自己签名的路径 ,生成的apk文件的名字路径修改一下,再输入需要签名的apk文件路径,最后输入自己签名的别名就可以

(新手,欢迎指正)

用命令给apk签名

给apk签名。

用已有的jks文件给apk签名。

先打开jdk文件夹,例如E:\Program Files\Java\jdk1.8.0_201\bin。

然后打开cmd输入以下命令

其中alias就是当初创建签名文件时所设定的,不能随便写。

在签名之前应当删除apk中META-INF中的文件,以免签名冲突。

2021年8月4日

java程序解析APK 的签名

我要在上传APK的同时来解析APK的签名是否和以前版本一致否则不能升级,所以我需要上传的时候来解析APK的签名

这里,应该还需要一个比较,这里有个问题。

你上传的版本一定是在本地。

那么你之前的版本是在什么地方呢?

一般用的都是下载最新版本,上传倒是没怎么用

如下是java解析APK,来自CSDN论坛:

package com.justsy.axml;

import java.io.File;

import brut.androlib.AndrolibException;

import brut.androlib.ApkDecoder;

/**

* 使用apktool解析apk包文件名 : ATool.java

*/

public class ATool {

/**

* @param args

* @throws AndrolibException

*/

public static void main(String[] args) throws Exception {

File inFile = new File("D:\\adobe.apk");

ApkDecoder decoder = new ApkDecoder();

decoder.setOutDir(new File("D:\\apktool"));

decoder.setApkFile(inFile);

decoder.decode();

}

}


当前标题:java签名apk代码 java实现签名apk
本文URL:http://scyanting.com/article/dophshd.html