Android基础入门:APP打包发布

简介: APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。应用程序升级:拥有同一个签名文件的应用,在用户升级到新的版本,可以实现无缝覆盖升级。不需要用户先卸载掉老版本,再装新版本。


1.App发布到应用市场

将应用程序打包为apk文件-》进行签名-》apk申请著作权(花点钱,写文档/找中介)-》应用市场检查程序是否合法-》成功发布

2.第三方市场

在这个网站可以下载各种手机app软件

百度手机助手_有颜又有货的应用商店 (baidu.com)

3.签名文件 的作用

  1. APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。
  2. 应用程序升级:拥有同一个签名文件的应用,在用户升级到新的版本,可以实现无缝覆盖升级。不需要用户先卸载掉老版本,再装新版本。

为什么要签名:如手机qq发布新的版本,覆盖安装,通过签名来作为app唯一的标识(类似人的身份证)

4.打包步骤

4.1bulid apk

通过build生成一个apk文件

网络异常,图片无法展示
|

选择APK方式发布,默认是Android App Bundle方式发布,这一般是发布到国外市场。

Android App Bundle 是一种发布格式,其中包含您应用的所有经过编译的代码和资源,它会将 APK 生成及签名交由 Google Play 来完成。

更多信息:Android App Bundle 简介

网络异常,图片无法展示
|

4.2创建密钥和密钥库

然后就是创建一个新的密钥和密钥库,自己创建一个特殊文件

我之前创建过密钥库,所以进来就是这张界面

网络异常,图片无法展示
|

如果是第一次打包没有创建过密钥和密钥库,则需要点击create new...

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • Key store path:创建密钥库的位置
    Password:为密钥库创建一个安全的密码
  • 密钥: Alias:为密钥输入一个标识名
    Password:为密钥创建一个并确认安全的密码(此密码应当与密钥库的密码不同)
  • Validity (years):以年为单位设置密钥的有效时长。密钥的有效期应至少为 25年
  • Certificate:为证书输入一些关于您自己的信息。此信息不会显示在应用中,但会作为 APK 的一部分包含在您的证书中

4.3正式导出

选择release方式导出,这一般是正式上线的版本,debug是内部测试版本,记住Destination Folder的位置,这是等会apk打包存放的位置

网络异常,图片无法展示
|

5.apk解压

查看刚刚的Destination Folder路径下可以找到刚刚打包下来的apk文件,这就已经可以直接发到手机上安装了

网络异常,图片无法展示
|

我们可以将apk文件解压,得到一个包含如下文件的文件夹

网络异常,图片无法展示
|

AndroidManifest.xml文件:其中的AndroidManifest.xml文件不完全与Android  Studio中的项目中的AndroidManifest.xml文件相同,这里的文件说经过加密处理的,反正我是没法用Edge直接打开它

res文件:项目中的资源文件;所以我们要找某一些app的图片素材可以通过这种方式获取,就不用截图了

classes.dex文件:是Android系统的可执行文件,包含应用程序的全部操作指令以及运行时数据。当java程序编译成class后,还需要使用dx工具将所有的class文件整合到一个dex文件,目的是其中各个类能够共享数据,在一定程度上降低了冗余,同时也是文件结构更加经凑

但是.dex文件不安全,容易被破解,被不法分子利用的话,就会直接看到我们app的java源码。所以我们需要对App加固

App加固

第三方平台

https://console.cloud.tencent.com/ms

注册一个腾讯云账号就可以在线帮我们实现app加固

网络异常,图片无法展示
|

上传成功后,它会自动帮我们做一系列的应用加固

网络异常,图片无法展示
|

加固完成

网络异常,图片无法展示
|


相关文章
|
7天前
|
Java 数据库 Android开发
一个Android App最少有几个线程?实现多线程的方式有哪些?
本文介绍了Android多线程编程的重要性及其实现方法,涵盖了基本概念、常见线程类型(如主线程、工作线程)以及多种多线程实现方式(如`Thread`、`HandlerThread`、`Executors`、Kotlin协程等)。通过合理的多线程管理,可大幅提升应用性能和用户体验。
25 15
一个Android App最少有几个线程?实现多线程的方式有哪些?
|
21天前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
45 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
23天前
|
安全 Java Android开发
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
如何解压OTA升级包、编辑升级包内容(例如移除不需要更新的分区)、重新打包、签名以及验证OTA文件的过程。
62 2
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
|
9天前
|
Java 数据库 Android开发
一个Android App最少有几个线程?实现多线程的方式有哪些?
本文介绍了Android应用开发中的多线程编程,涵盖基本概念、常见实现方式及最佳实践。主要内容包括主线程与工作线程的作用、多线程的多种实现方法(如 `Thread`、`HandlerThread`、`Executors` 和 Kotlin 协程),以及如何避免内存泄漏和合理使用线程池。通过有效的多线程管理,可以显著提升应用性能和用户体验。
29 10
|
8天前
|
IDE Java 程序员
安卓应用开发入门:打造你的第一个“Hello World”
【9月更文挑战第11天】在编程的世界里,每一个初学者的旅程都从一个简单的“Hello World”开始。本文将带领安卓开发的新手们,通过简单直观的方式,一步步构建出自己的第一个安卓应用。我们将探索安卓工作室(Android Studio)的安装、项目的创建,以及如何运行和调试你的应用。无论你是编程新手还是想扩展技能的老手,这篇文章都将为你打开一扇通往安卓世界的大门。
39 7
|
8天前
|
IDE Java API
安卓应用开发入门:打造你的第一个"Hello World"
【9月更文挑战第11天】在探索安卓开发的海洋中,每个开发者的航行都从简单的"Hello World"开始。本文将作为你的航标,引导你驶向安卓应用开发的精彩世界。我们将一起启航,通过浅显易懂的语言和步骤,学习如何构建并运行你的第一个安卓应用。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供所需的知识和信心。准备好了吗?让我们揭开安卓开发的神秘面纱,一起创造些令人兴奋的东西吧!
|
23天前
|
存储 BI Android开发
全开源仿第八区H5APP封装打包分发系统源码
全开源仿第八区H5APP封装打包分发系统源码
82 4
|
23天前
|
API Android开发
Android P 性能优化:创建APP进程白名单,杀死白名单之外的进程
本文介绍了在Android P系统中通过创建应用进程白名单并杀死白名单之外的进程来优化性能的方法,包括设置权限、获取运行中的APP列表、配置白名单以及在应用启动时杀死非白名单进程的代码实现。
42 1
|
27天前
|
IDE Java 开发工具
探索安卓开发之旅:打造你的第一款App
【8月更文挑战第24天】在这篇文章中,我们将一起踏上激动人心的安卓开发之旅。不论你是编程新手还是希望扩展技能的老手,本文将为你提供一份详尽指南,帮助你理解安卓开发的基础知识并实现你的第一个应用程序。从搭建开发环境到编写“Hello World”,每一步都将用浅显易懂的语言进行解释。那么,让我们开始吧!
|
1月前
|
JavaScript API
Vue3 运行可以,build 打包发布报错,app.config.globalProperties 用法坑
Vue3 运行可以,build 打包发布报错,app.config.globalProperties 用法坑
31 2