Android:签名(Android Studio)

前言

我们带着问题查看本文,可能会事半功倍哦!

1,app为什么要签名?签名是什么?

2,keystore和jks的区别是什么?

3,V1和V2的区别是什么?

4,怎么生成签名文件?怎么给app签名?

作为实用主义者,我们倒着来一个一个解决问题。


一,生成签名文件

相信使用过AS的朋友,看图就明白要怎么操作了:











注意:

1,new key store中的store path,store password,alias,password要记住哦,一般年限默认选择25年即可,certificate一般只填Country Code即可,如:cn (中国)即可;

2,xxx.jks就是我们生成的签名文件;

3,我们默认选择V1即可,就会在apk destination folder 指定目录下生成我们签名过的apk。

小提示:查看签名文件MD5等信息


口令是 key store password,(输入时,不会显示,输入完成后直接 回车)。

二,配置签名文件

为了不用每次打签名包时再次输入store path,store password,alias,password,我们需要把签名文件配置到我们项目中:

方法一:AS




输入对应的信息即可,这样在主项目的build.gradle中就会生成

signingConfigs {
    release {
        keyAlias xxx
        keyPassword xxx
        storeFile file('hdl_sign.jks')
        storePassword xxx
    }
}

方法二:当然就是我们直接在主项目的build.gradle中的android节点下,手写signingConfigs配置;

我们想要用命令行 “gradle assemblerelease” 打签名包,还需这行代码

buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

是用来指定build release包的签名为对应的signingConfigs下的release签名。

这样我们就大功告成啦!可以打包出我们想要的带有签名的apk了。

进一步完善:

大家项目一般会托管到github等,有时也会开源出去,那么jks的安全性就要注意了。

我们可以把keyAlias,keyPassword,storePassword 放到local.properties里,(因为该文件一般放android sdk和ndK的本地路径,所以改文件是设置 上传忽略的);这样我们在设置signingConfigs就这可以这样写:

local.properties里

ndk.dir=D\:\\androidsdk\\ndk-bundle
sdk.dir=D\:\\androidsdk


KEYSTORE_PASSWORD=xx
KEY_PASSWORD=xx
KEY_ALIAS=xx
build.gradle里

signingConfigs {
    release {
        keyAlias keystoreAlias
        keyPassword keystoreAliasPSW
        storeFile file('hdl_sign.jks')
        storePassword keystorePSW
    }
}
def keystorePSW = ''
def keystoreAlias = ''
def keystoreAliasPSW = ''

// default keystore file, PLZ config file path in local.properties
Properties properties = new Properties()
// local.properties file in the root director
properties.load(project.rootProject.file('local.properties').newDataInputStream())

keystorePSW = properties.getProperty("KEYSTORE_PASSWORD")
keystoreAlias = properties.getProperty("KEY_ALIAS")
keystoreAliasPSW = properties.getProperty("KEY_PASSWORD")

这样我们就可以放心的上传和使用签名了。

三,V1和V2的区别

网友提供了介绍: https://blog.csdn.net/lonewolf521125/article/details/74535413

我进行了测试,确实如他所说,所以这里我直接贴出结:

一定可行的方案: 只使用 v1 方案
不一定可行的方案:同时使用 v1 和 v2 方案

对 7.0 以下一定不行的方案:只使用 v2 方案

四,keystore和jks的区别

keystore 是Eclipse 打包生成的签名,而 jks是Android  studio 生成的签名!都是用来打包的,并保证应用的唯一性!这就是他们的最大的区别!

备注:很多第三方市场,我们上传apk的时候,他们只支持keystore,需要我们把.jks签名转化为.keystore!

jks:java key store的简称。

五,app为什么要签名?签名是什么?
该问题将在下一期,进行研究。尽情期待!!!

六,继续思考
1,一个签名文件可以给多个app签名吗?
2,一个app可以有多个签名文件吗?



参考:
https://blog.csdn.net/jiangwei0910410003/article/details/50402000

https://blog.csdn.net/donkor_/article/details/53487133


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 使用Android Studio签名APK的步骤: 1. 生成keystore文件:可以在Android Studio中通过Build-Agenerate Signed Bundle / APK菜单完成生成,也可以使用命令行: keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 2. 配置签名:在AndroidManifest.xml文件中配置签名信息,如下所示: ``` <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapp"> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.myapp.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <uses-feature android:name="android.hardware.telephony" /> <permission android:name="com.example.myapp.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="com.example.myapp.permission.MAPS_RECEIVE" /> <uses-library android:name="com.google.android.maps" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> </manifest> ``` 3. 打包签名:使用Android Studio的Build-Agenerate Signed Bundle / APK菜单完成打包签名过程,也可以使用命令行:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name 4. 优化APK:使用zipalign优化APK,可以使用命令行:zipalign -v 4 my_application.apk my_application_aligned.apk ### 回答2: Android Studio 是一款应用程序开发工具,为开发者提供了完整的应用开发环境,也是 Android 系统中最常用的开发工具之一。在开发完成后,我们需要发布签名的 APK 文件,以便在 Google Play Store 中发布应用程序等。 签名 APK 文件让用户相信 APK 文件的安全性。还可以通过签名让系统知道应用程序是由哪个开发者发布的。这篇文章将介绍如何在 Android Studio签名 APK 文件。 首先,我们需要在 Android Studio 中打开要进行签名的项目。然后,选择 "Build" 菜单,再选择 "Generate Signed Bundle/APK"。然后,选择 "APK" 并选择下一步。 接下来,我们需要为我们的 APK 文件创建一个新的密钥存储文件,或者使用之前创建的密钥存储文件。如果我们没有创建过密钥存储文件,我们需要选择 "Create new" 并输入一个存储路径和一个密码。然后,我们需要填写所有必填字段,例如别名、组织单位名称、组织名称和国家等信息。 在成功创建密钥存储文件后,我们需要填写 APK 文件相关的信息,例如 APK 文件的目的地、签名用的密钥存储文件、别名及密码等信息。请确保正确填写所有信息并选择“V2(Full APK Signature)” 选项以允许全程签名。 最后,选择“Finish”,开始生成签名 APK,完成后从存储目录下找到 APK 文件即可。 以上就是在 Android Studio签名 APK 文件的步骤。在发布应用程序之前,应该始终使用签名 APK 文件,以确保应用的安全性和完整性。 ### 回答3: AndroidStudioAndroid应用程序开发平台,它提供了一个可以方便创建、打包等操作的图形化界面(GUI)以及丰富的插件机制,是 Android 开发的重要工具。签名apk是Android应用程序开发过程中的一个重要步骤,如下是AndroidStudio签名apk的详细步骤: 步骤一: 在Android Studio中打开你的项目。 步骤二: 点击左上角菜单中 File ==> Project Structure。 步骤三: 在左侧面板选择app。 步骤四: 点击Signing菜单,然后点击“Create new…”按钮创建一个新的key。 步骤五: 按照提示输入必要的信息,包括Key store path,Key store password,Key alias, Key password,Valid from, Valid until等,然后点击“Ok”保存。 步骤六: 在Build Types菜单中,选中Release选项,并且在Signing Configs处选中你所创建的key。 步骤七: 重新编译你的应用程序,Android Studio将自动使用你所创建的key签名apk。 需要注意的是,为了保证应用程序的签名安全,你需要妥善保管Key store password、Key password、Key Alias等信息。此外,每次发布新的版本时都应该使用一个新的key。这样才能保证应用程序的安全性。签名apk是 Android 应用程序开发的重要步骤,一定要认真对待。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值