Android48_应用程序发布

本文详细介绍了Android应用的发布流程及APK签名原理,包括应用商店发布、Eclipse开发程序运行、数字签名的重要性与步骤,以及解决Java.lang.NoClassDefFoundError错误的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、应用程序发布:
(一)、概述:
        应用程序开发出来之后,就要考虑推广问题。如何让更多用户知道并使用自己开发app呢?最常用的做法就是发布到某个app商店中。这样用户可以在应用商店中找到我们的应用,然后下载和安装。
        常见的应用商店有:Google Play,91,豌豆荚,机锋,360等。


(二)、 Eclipse开发的程序如何运行到手机?
        默认情况下:点击Run As 运行Android Application,就可以在手机中运行该app。具体的工作流程是什么呢?
1、Eclipse将程序打包成一个apk文件;
2、Eclipse将生成的apk上传到手机上;
3、在手机上执行安装apk的操作;
4、运行该apk中的默认起始页。


(三)、APK签名:
1、为什么要签名?
        不是所有的apk文件都可以安装到手机上,Android系统要求只有签名后的apk才可以安装。Eclipse使用了一个默认的keystore文件帮我们自动进行了签名。默认的keystore目录:
通过操作: Window  ->  Preferences  ->  Android  ->    Build   可以看到以下目录,例如:
        C:\Documents and Settings\Administrator\.android\debug.keystore
        默认情况下都是使用这个 debug.keystore文件来进行签名的。开发阶段使用这个签名是可以的,但是发布的时候使用正式的keystore文件来进行签名才可以。

        Android系统要求每一个安装进系统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android将数字证书用来标识应用程序的作者并且在应用程序之间建立信任关系,这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。

2、数字签名的好处:
         同一个开发者的多个程序尽可能使用同一个数字证书,这可以带来以下好处:
(1)、有利于 程序升级
        当新版程序和旧版程序的数字证书相同时,Android系统才会认为这两个程序是同一个程序的不同版本。如果新版程序和旧版程序的数字证书不相同,则Android系统认为他们是不同的程序,并产生冲突,会要求新程序更改包名。

(2)、有利于程序的 模块化设计和开发
        Android系统允许拥有同一个数字签名的程序运行在一个进程中,Android程序会将他们视为同一个程序。所以开发者可以将自己的程序分模块开发,而用户只需要在需要的时候下载适当的模块。

(3)、可以通过权限(permission)的方式在 多个程序间共享数据和代码
        Android提供了基于数字证书的权限赋予机制,应用程序可以和其他的程序共享概功能或者数据给那那些与自己拥有相同数字证书的程序。如果某个权限(permission)的protectionLevel是signature,则这个权限就只能授予那些跟该权限所在的包拥有同一个数字证书的程序。

2、数字签名的步骤:【重要】
(1)、右击项目 -> Android Tools  -> Export Signed Application Package;
(2)、选择Create new keystore。指定keystore的文件名和路径,并输入密码;
(3)、 填写数字签名信息;
(4)、选择apk文件输出地址,生成keystore文件,并生成正式签名的apk文件。 


二、 java.lang.NoClassDefFoundError 错误的解决方法
(一)、错误截图:

(二)、错误日志输出:


(三)、错误解决方案:
1、将需要的第三方包拷贝进libs文件夹;
2、将引用的第三方包,添加进工作的build path;
3、(关键的一步)将 libs设为源文件夹。  右击libs 选择build path 点击 use as source folder。
注:如果不设置,则程序编译可以通过,但运行的时候,会报:
     java.lang.NoClassDefFoundError





一、应用程序发布:
(一)、概述:
        应用程序开发出来之后,就要考虑推广问题。如何让更多用户知道并使用自己开发app呢?最常用的做法就是发布到某个app商店中。这样用户可以在应用商店中找到我们的应用,然后下载和安装。
        常见的应用商店有:Google Play,91,豌豆荚,机锋,360等。


(二)、 Eclipse开发的程序如何运行到手机?
        默认情况下:点击Run As 运行Android Application,就可以在手机中运行该app。具体的工作流程是什么呢?
1、Eclipse将程序打包成一个apk文件;
2、Eclipse将生成的apk上传到手机上;
3、在手机上执行安装apk的操作;
4、运行该apk中的默认起始页。


(三)、APK签名:
1、为什么要签名?
        不是所有的apk文件都可以安装到手机上,Android系统要求只有签名后的apk才可以安装。Eclipse使用了一个默认的keystore文件帮我们自动进行了签名。默认的keystore目录:
通过操作: Window  ->  Preferences  ->  Android  ->    Build   可以看到以下目录,例如:
        C:\Documents and Settings\Administrator\.android\debug.keystore
        默认情况下都是使用这个 debug.keystore文件来进行签名的。开发阶段使用这个签名是可以的,但是发布的时候使用正式的keystore文件来进行签名才可以。

        Android系统要求每一个安装进系统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android将数字证书用来标识应用程序的作者并且在应用程序之间建立信任关系,这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。

2、数字签名的好处:
         同一个开发者的多个程序尽可能使用同一个数字证书,这可以带来以下好处:
(1)、有利于 程序升级
        当新版程序和旧版程序的数字证书相同时,Android系统才会认为这两个程序是同一个程序的不同版本。如果新版程序和旧版程序的数字证书不相同,则Android系统认为他们是不同的程序,并产生冲突,会要求新程序更改包名。

(2)、有利于程序的 模块化设计和开发
        Android系统允许拥有同一个数字签名的程序运行在一个进程中,Android程序会将他们视为同一个程序。所以开发者可以将自己的程序分模块开发,而用户只需要在需要的时候下载适当的模块。

(3)、可以通过权限(permission)的方式在 多个程序间共享数据和代码
        Android提供了基于数字证书的权限赋予机制,应用程序可以和其他的程序共享概功能或者数据给那那些与自己拥有相同数字证书的程序。如果某个权限(permission)的protectionLevel是signature,则这个权限就只能授予那些跟该权限所在的包拥有同一个数字证书的程序。

2、数字签名的步骤:【重要】
(1)、右击项目 -> Android Tools  -> Export Signed Application Package;
(2)、选择Create new keystore。指定keystore的文件名和路径,并输入密码;
(3)、 填写数字签名信息;
(4)、选择apk文件输出地址,生成keystore文件,并生成正式签名的apk文件。 


二、 java.lang.NoClassDefFoundError 错误的解决方法
(一)、错误截图:

(二)、错误日志输出:


(三)、错误解决方案:
1、将需要的第三方包拷贝进libs文件夹;
2、将引用的第三方包,添加进工作的build path;
3、(关键的一步)将 libs设为源文件夹。  右击libs 选择build path 点击 use as source folder。
注:如果不设置,则程序编译可以通过,但运行的时候,会报:
     java.lang.NoClassDefFoundError

良心的公众号,更多精品文章,不要忘记关注哈

《Android和Java技术栈》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值