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加固

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

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

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

加固完成

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


相关文章
|
22天前
|
Java 数据库 Android开发
一个Android App最少有几个线程?实现多线程的方式有哪些?
本文介绍了Android多线程编程的重要性及其实现方法,涵盖了基本概念、常见线程类型(如主线程、工作线程)以及多种多线程实现方式(如`Thread`、`HandlerThread`、`Executors`、Kotlin协程等)。通过合理的多线程管理,可大幅提升应用性能和用户体验。
39 15
一个Android App最少有几个线程?实现多线程的方式有哪些?
|
4天前
|
开发框架 移动开发 Android开发
安卓与iOS开发中的跨平台解决方案:Flutter入门
【9月更文挑战第30天】在移动应用开发的广阔舞台上,安卓和iOS两大操作系统各自占据半壁江山。开发者们常常面临着选择:是专注于单一平台深耕细作,还是寻找一种能够横跨两大系统的开发方案?Flutter,作为一种新兴的跨平台UI工具包,正以其现代、响应式的特点赢得开发者的青睐。本文将带你一探究竟,从Flutter的基础概念到实战应用,深入浅出地介绍这一技术的魅力所在。
21 7
|
15天前
|
Android开发 开发者
安卓开发中的自定义视图:从入门到精通
【9月更文挑战第19天】在安卓开发的广阔天地中,自定义视图是一块充满魔力的土地。它不仅仅是代码的堆砌,更是艺术与科技的完美结合。通过掌握自定义视图,开发者能够打破常规,创造出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战应用,一步步展示如何用代码绘出心中的蓝图。无论你是初学者还是有经验的开发者,这篇文章都将为你打开一扇通往创意和效率的大门。让我们一起探索自定义视图的秘密,将你的应用打造成一件艺术品吧!
40 10
|
9天前
|
存储 开发工具 Android开发
使用.NET MAUI开发第一个安卓APP
【9月更文挑战第24天】使用.NET MAUI开发首个安卓APP需完成以下步骤:首先,安装Visual Studio 2022并勾选“.NET Multi-platform App UI development”工作负载;接着,安装Android SDK。然后,创建新项目时选择“.NET Multi-platform App (MAUI)”模板,并仅针对Android平台进行配置。了解项目结构,包括`.csproj`配置文件、`Properties`配置文件夹、平台特定代码及共享代码等。
|
13天前
|
XML Android开发 数据格式
🌐Android国际化与本地化全攻略!让你的App走遍全球无障碍!🌍
在全球化背景下,实现Android应用的国际化与本地化至关重要。本文以一款旅游指南App为例,详细介绍如何通过资源文件拆分与命名、适配布局与方向、处理日期时间及货币格式、考虑文化习俗等步骤,完成多语言支持和本地化调整。通过邀请用户测试并收集反馈,确保应用能无缝融入不同市场,提升用户体验与满意度。
35 3
|
2月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
62 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
2月前
|
安全 Java Android开发
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
如何解压OTA升级包、编辑升级包内容(例如移除不需要更新的分区)、重新打包、签名以及验证OTA文件的过程。
108 2
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
|
24天前
|
Java 数据库 Android开发
一个Android App最少有几个线程?实现多线程的方式有哪些?
本文介绍了Android应用开发中的多线程编程,涵盖基本概念、常见实现方式及最佳实践。主要内容包括主线程与工作线程的作用、多线程的多种实现方法(如 `Thread`、`HandlerThread`、`Executors` 和 Kotlin 协程),以及如何避免内存泄漏和合理使用线程池。通过有效的多线程管理,可以显著提升应用性能和用户体验。
38 10
|
23天前
|
IDE Java 程序员
安卓应用开发入门:打造你的第一个“Hello World”
【9月更文挑战第11天】在编程的世界里,每一个初学者的旅程都从一个简单的“Hello World”开始。本文将带领安卓开发的新手们,通过简单直观的方式,一步步构建出自己的第一个安卓应用。我们将探索安卓工作室(Android Studio)的安装、项目的创建,以及如何运行和调试你的应用。无论你是编程新手还是想扩展技能的老手,这篇文章都将为你打开一扇通往安卓世界的大门。
77 7
|
23天前
|
IDE Java API
安卓应用开发入门:打造你的第一个"Hello World"
【9月更文挑战第11天】在探索安卓开发的海洋中,每个开发者的航行都从简单的"Hello World"开始。本文将作为你的航标,引导你驶向安卓应用开发的精彩世界。我们将一起启航,通过浅显易懂的语言和步骤,学习如何构建并运行你的第一个安卓应用。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供所需的知识和信心。准备好了吗?让我们揭开安卓开发的神秘面纱,一起创造些令人兴奋的东西吧!
下一篇
无影云桌面