apache环境下载apk文件变成zip文件的方法解决方法

 更新时间:2016年9月20日 20:00  点击:2344
今天自己的一个安卓站下载.apk文件时变成了zip可能一直是这样,只是我没发现了,后面网上找一些方法

在Apache安装目录下的conf/mime.types文件的对应位置,加上以下一行语句,指定APK文件的MIME类型为 application/vnd.android.package-archive 即可:

 代码如下 复制代码


application/vnd.android.package-archive     apk;

重启apache即可

分享一些其它的格式的增加方法


找到了个mime的资料,借着张老师的地方分享给大家
下面是各种文件名后缀在nginx的mime.types中的配置:

 代码如下 复制代码
text/vnd.sun.j2me.app-descriptor      jad;
application/java-archive              jar war ear;
application/x-java-archive-diff       jardiff;
application/vnd.android.package-archive apk;
application/vnd.ms-cab-compressed              cab;
application/octet-stream              bin exe dll;
application/vnd.symbian.install       sis;
x-epoc/x-sisx-app                     sisx;
application/iphone                    pxl ipa;
application/vnd.palm                  prc pdb;
application/vnd.webos.ipk             ipk;
application/vnd.rim.cod               cod;
application/mrp                       mrp;
x-nokia-widget                        wgz;
application/octet-stream              deb;
本文章来介绍关于Android应用apk的程序签名详解,关在Android系统中,要求所有应用程序必须经过数字签名后才能安装。Android系统使用这个证书来识别应用程序的作者,并建立程序间的信任关系。

证书并不用让于用户控制可以安装哪些程序,证书也不需要授权中心来签名。在Android系统中,应用程序使用自己签名的证书是完全允许而且是很普遍的。

关于Android应用程序签名主要有以下几个重点:

•所有的应用程序都必须签名。系统不会安装任何一个没有签名的程序。这条规则适用于任何运行Android系统的地方,不管是真机还是模拟器。因此必须在模拟器或真机上运行/调试程序之前对程序进行签名。
•可以使用自己的证书来签名。不需要任何授权中心。
•要为最终用户发布应用程序的时候,必须签入一个合适的密钥。不可以发布程序的时候还使用SDK工具签入的Debug Key。
•系统只在安装应用程序的时候检测证书的有效期。如果应用程序在安装之后证书失效了,应用程序依然可以正常工作。
•可以使用标准工具——Keytool和Jarsigner生成Key并签名apk文件。
•一旦为应用程序签名了,一定要使用zipalign工具来优化最终的APK包。
Debug Key和Release Key
在调试应用程序时,Android SDK工具会自动对应用程序进行了签名。Eclipse的ADT插件和Ant编译工具都提供了两种签名模式——Debug模式和Release模式。 在开发和测试时,可以使用Debug模式。Debug模式下,编译工具使用内嵌在JDK中的Keytool工具来创建一个keystore和一个 key(包含公认的名字和密码)。在每次编译的时候,会使用这个Debug Key来为apk文件签名。由于密码是公认的所以每次编译的时候,并不需要提示你输入keystore和key密码。

当程序准备发布时,必须在Release模式下使用密钥来为apk文件签名。有以下两种方式可以做到:

1. 命令行中使用Keytool和Jarsigner。

这个方法中,首先需要编译出一个未签名的apk。然后使用Jarsigner(或类似的工具),用密钥为apk手动签名。如果没有合适的密钥,可以运行Keytool来手动生成自己的keystore/key。

2. 使用ADT导出向导。

如果使用Eclipse/ADT插件进行开发,可以使用导出向导来编译程序,生成密钥(如果需要),并为apk签名,所有这些操作都在导出向导中。一旦程序签名了,别忘了运行zipalign来为apk进行额外的优化。

关于签名策略
应用程序签名的某些方面可能会影响应用程序的开发,特别是打算一起发布多个应用程序的时候。一般来说,推荐的策略是在整个应用程序寿命内,所有的程序都用相同的证书签名。主要出于以下几点考虑:

•应用程序升级——在应用程序进行升级时,如果想用户平稳的升级,那么就需要签上相同的证书。当系统安装一个升级应用程序时,如果新版本的证书与老版本的证 书有匹配的话,那么,系统才会允许进行升级。如果没有为新版本程序签上合适的证书,那么在安装时需要给应用程序指定一个新的包名。这种情况下,用户安装的 新版本将当作是一个全新的应用程序。
•应用程序模块化——如果应用程序声明,Android系统允许签有相同证书的应用程序运行在相同的进程里。这样系统将会把它们看作是一个单一的应用程序。用这种方法配置应用程序,用户可以选择更新每个独立的模块。
•代码/数据权限共享——Android系统提供了基于签名的权限检查,因此如果应用程序间签有特定的证书,它们之间可以共享功能。通过多个程序签有相同的证书,并且使用基于签名的权限检查,程序可以以一种安全的方式共享代码和数据。
•如果计划支持单个应用程序的升级,需要确保key拥有一个超过期望的应用程序生命周期的有效期。推荐使用25年或更长的有效期。当key过期后,用户也就不能平稳的更新到新的版本了。
•如果给多个无关的应用程序签上了相同的key,那么应确保key的有效期超过所有应用程序所有版本的生命周期,包括将来有可能添加到这一阵营的程序。
•如果想在Android Market上发布程序,key的有效期必须在2033.10.22以后。Market服务器强制这一要求,目的是保证用户可以平稳的更新他们的程序。
在设计应用程序时,一定要考虑以上这些,并使用一个合适的证书来为应用程序签名。

配置签名环境
首先要保证Keytool对SDK编译工具来说是可利用的。一般可以通过设置JAVA_HOME环境变量来告诉SDK编译工具如何找到Keytool。另 外还可以添加JDK中Keytool的路径到PATH的变量里。 如果在Linux上开发,并且使用GNU编译器来编译Java,那么要确保系统是使用JDK中的Keytool,而不是gcj。如果Keytool已经在 PATH中,它有可能是对/usr/bin/keytool的符号链接。这种情况下,要检查符号链接的目标,确保它是指向JDK中的Keytool。

如果要发布应用程序,还需要Jarsigner工具。Jarsigner和Keytool都包含在JDK中。

Debug模式下签名
Android编译工具提供了Debug签名模式,使得开发和调试应用程序更加容易,而且还满足Android系统的签名要求。在使用Debug模式编译 app时,SDK工具会调用Keytool工具自动创建一个Debug的keystore和key。然后这个Debug key会自动用于apk的签名,这样就不需要手动为应用程序包签名了。

关于SDK工具使用的keystore:

•Keystore名字:“debug.keysotre”
•Keystore密码:“android”
•Key别名:“androiddebugkey”
•Key密码:“android”
•CN:“CN=Android Debug,O=Android,C=US”
如果需要可以改变Debug keystore/key的位置和名字,或者提供一个自定义的Debug keysotre/key(在Eclipse/ADT中,通过修改 Windows>Preferences>Android>Build配置实现)。但是任何自定义的Debug keystore/key必须使用和默认Debug key(上面描述的)相同的名字和密码。

注意:不能将签有Debug证书的应用程序发布给最终用户。

Eclipse用户:如果在Eclipse/ADT下开发(并且已经按照上面的描述配置了Keytool),Debug模式下签名默认是开启的。运行或是调试应用程序 时,ADT会使用Debug证书进行签名,并运行zipalign,然后安装到选择的模拟器或是已连接的设备。整个过程不需要人工干预。

Ant用户:如果使用Ant来编译apk文件,则需要在ant命令中添加debug选项来开启Debug签名模式(假设正在使用由android工具生成 build.xml文件)。运行ant debug编译程序时,编译脚本会生成一个keystore/key,并为apk进行签名。然后脚本会使用zipalign工具对apk进行对齐处理。整 个过程不需要人工干预。

Debug证书过期
Debug模式下签名用的证书自从它创建之日起,1年后就会失效。当证书失效时,会得到一个编译错误,Ant上错误如下:

view sourceprint?
1 debug: 

2 [echo] Packaging bin/samples-debug.apk, and signing it with a debug key... 

3 [exec] Debug Certificate expired on 8/4/08 3:43 PM
在Eclipse ADT中,Android控制台上也将会看到一个类似的错误。要解决这个问题,只需删掉debug.keystore文件即可。该文件默认存储的位置在:

•OS X和Linux:~/.android/
•Windows XP:C:/Documents and Settings/.android/
•Windows Vista:C:/Users/.android/
删除后,在下一次编译的时候,编译工具会重新生成一个新的keystore和Debug key。

Release模式下签名
应用程序准备发布给其它用户时,需要:

•获取一个合适的密钥
•在Release模式下编译程序
•使用密钥签名程序
•对齐APK包
如果使用Eclipse ADT插件开发,可以使用导出向导来完成编译、签名和对齐等操作。整个过程中,导出向导还可以生成一个新的keystore和密钥。

关于密钥的生成
为了进行程序签名,必须有一个合适的密钥。这个密钥应有以下特征:

•个人持有。
•代表个人、公司或组织实体的身份。
•有一个有效期。有效期推荐超过25年。在Android Market上发布程序时需要注意:程序的有效期需要在2033.10.22之后。不能上传一个应用程序而它的key的有效期是在这个日期之前。
•不是由Android SDK工具生成的Debug key。
如果没有合适的key,则需要使用Keytool来生成一个。用Keytool生成一个key,可使用keytool命令并传入一些可选参数

安卓手机怎么打USB调试模式方法详细介绍,开发的朋友可参考一下。

一,在HTC G7手机上打开“USB调试”的步骤:

  1、在手机上按下“Menu ”键(功能键),在弹出的菜单中选择“Setting(设置)”;

  2、选择“应用程序”;

  3、在此界面勾选“未知来源”,然后选择“开发”;

  4、勾选“USB调试”,“保持唤醒状态”。

 

二、 三星系列的手机
部分三星的手机,如i5508,在通过USB连接到电脑后,手机端提示选择“USB设置”模式,请选择“Kies”,选择此模式后相当于打开了“USB调试”开关。

 三、 夏普/首派/XT502等部分手机
夏普,首派,XT502等部分手机,在按照上述步骤打开“USB调试”开关后,还需要运行随机自带的应用后,“USB调试”开关才会被真正地打开。 这部分手机在插到电脑后,会生成一个虚拟光驱,运行其中的setup.exe即可。

 四、索爱系列(X10/X8)的手机
部分索爱的手机,在“应用程序”界面下,还有“PC Companion”的选项,勾选了此选项,就可以使用索爱官方PC套件PC Companion进行连接,但无法同时与应用助手for Android进行连接。所以如果想使用应用助手for Android进行连接时,请将此选项取消勾选。

 五、Ophone系列手机
部分Ophone手机没有“开发”的选项,无法直接手动打开“USB调试”开关。在通过USB连接到电脑上时,手机端会提示选择何种连接模式,如果有“Adb”选项的话,请选择“Adb”,如果没有则选择“调试”,选择了此类连接模式相当于打开了“USB调试”开关。


温馨提示:

  如以上操作后还未能连接这时您可以尝试:

  1、重新插拔USB连接;

  2、重启手机;

  3、重启电脑;

三星i9300手机觖锁的详细方法,供大家参考一下。

1. 在三星i9300屏幕输入 *#7465625# 查看自己的手机是否有网络锁 看到有network lock 表示手机被锁
2. 查找自己三星i9300的IMEI号码,这个号码可以在手机盒子里找到,或者 直接输入 *#06# 可以得到
3. 找到自己手机的解锁号,这个号码通常可以询问自己的手机服务商(改版机除外) 或者去网络上查找。网上有很多公司提供这个服务,以美国本土而言,号称最大的cellunlocker出售此解锁号8美金一个。
4. 使用一张其他公司的手机卡开机,会提示你输入解锁号码 首先输入 #7465625*638*# 然后会有一个popup窗口出现,提示你输入刚才得到的手机解锁号。
5. 输入步骤3的手机解锁号 点OK 完成
6. 输入 *#7465625# 查看自己的手机是否解锁完成

现在手机刷新是一件再常见不过的事情了,本文章来介绍关于htc g12手机刷新的详细教程。
  1. 1、首先确认自己的机子是不是SHIP S-OFF的,能否刷机跟ROOT(获取最高管理员权限)无关
    目前只有S-OFF才可以随意刷机。 S-ON的朋友可以等待官方解锁或者花金子去找JS 。(现在已经可以软解了)
    如何查看是不是SHIP S-OFF:
    完全关机后按音量减键+电源键进入HBOOT
    注意:如果不确定完全关机最好把电池拿出来一下
    进入HBOOT后看手机的第一行有没有SHIP S-OFF的字样,有就行了。
    (退出HBOOT方法:HBOOT下面按电源然后进入fastboot了,然后音量键调整到reboot。 )

     
  2. 2、下载刷机软件Recovery和ROM系统
    Recovery 最新CWM Recovery4.0.0.5(英文版)
    ROM :zk7513153 纯sense3.0第一版适合日常使用,快速
    什么是recovery?
    ——recovery 就是你用 home 键+开机键 开机后能进入的一个界面(工程模式),在这个界面你可以直接用sd 卡上的zip 的rom 升级或者备份你的系统,老版本的recovery 只有三个选项,无法备份系统,只能用update.zip这个文件名的文件升级,不能用任何文件名的zip文件升级。新版本已经多出很多选项可以供你操作。
    ——此外,一般刷rom 之前最好wipe一下(wipe只是抹除rom 意外的个人数据,不会影响rom 本身),也就是返回出厂设置一下比较好,但是这样就会丢失你的所有软件,短信彩信,联系人(备份在google上没有关系)和设置等等,备份或者不wipe 都可以。
     
  3. 3、准备工作
    先准备好一张存储卡,在电脑上把存储卡格式化成FAT32格式,一定要这个格式。
    然后把下载下来刷机软件Recovery和ROM系统和系统复制到存储卡里
    注意,下载下来不用解压缩
    把刷机软件的名字改成:PG88IMG.zip
    ROM系统的名字是:只要不是中文就行。在机锋论坛或其他知名论坛下载的一般不用更改。
    为了避免在有些网站下载的ROM可能出现名称不规范的问题,请注意核对好名字和后缀。
    不能更改后缀的 在计算机-文件夹选项-去掉 隐藏已知文件类型的扩展名
     
  4. 4、安装刷机软件Recovery
    把存储卡放进手机后开机,按音量减键+电源键进入HBOOT 之后等待几秒。
    这个时候手机会自动搜索Recovery并询问是否更新,最后 让你选择 UP YES / DOWN NO 按音量上键确定,软件就会自动更新更新完之后会提示press <power> to reboot (按电源键重新启动)
    重新启动后进入系统把存储卡里面的刷机软件删掉,也就是把PG88IMG.zip这个删掉 ,不然再次进入HBOOT 还会提示更新!
    可以直接在手机上的文件管理器删除 也可以连接电脑删除,总之。。我们的目的就是删掉他~~~
    HBOOT界面 :5、刷系统
    把刷机软件从存储卡里删掉后完全关机,按音量减键+电源键进入HBOOT 不确定完全关机的机油可以扣电池。
    进入HBOOT后选择第二项recovery进入刷机系统(应为黑色背景。黄色字体)
    期间会有振动,然后出现这里讲下刷机系统的按键功能:
      音量键,控制进行上下选择
      电源键,为确定
      音量下+电源键,重启手机
      音量上+电源键,关闭recovery界面的字符串显示
    会看到以下选项
    -reboot system now 重启系统
    -apply sdcard:update.zip 使用SD卡根目录的update.zip更新系统
    -wipe data/factory reset 清空data分区并恢复出厂设置
    -wipe cache partition 清空cache分区
    -install zip from sdcard 从SD卡选择文件更新系统
    -backup and restore 备份和恢复
    -mounts and storage 挂载和存储
    -advanced 1)选择Wipe DATA/Factory reset(清除内存)会进入选择界面,一堆NO 只有一个是YES 。。。你猜选择那个? ---对的,当然选择YES ,选择YES以后会自动清除 然后返回上一界面。
    2)继续选择-wipe cache partition 同样一堆NO。。选择其中的YES。结束后会自动返回上一界面。
    3)选择Install zip from SDCARD进入后会有大概5个选项然后再选择choose zip from sdcard
    这时会出来几个选项 其中一个是你刚刚下载的ROM包的名字 ,后缀是.zip选择后依然在一堆NO里选择YES
    会自动从SD卡刷入ROM包,进度条到头完成后在弹出选项中选择 GO BACK 然后再选择REBOOT的 即可、
    刷机后第一次进入新系统会很慢,属于正常情况,不要着急。
    好了 新的系统刷好了
  5. 如果上面教程大家不清楚,我推荐你可以参考一下 http://www.111cn.net/help/android/18851.html 本文章。
    刷新包:http ://u.115.com/file/aq2zoe2q
[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • php 中file_get_contents超时问题的解决方法

    file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • 安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法

    手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21
  • 连接MySql速度慢的解决方法(skip-name-resolve)

    最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能...2015-10-21
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • AI源文件转photoshop图像变模糊问题解决教程

    今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
  • C++万能库头文件在vs中的安装步骤(图文)

    这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • ant design中upload组件上传大文件,显示进度条进度的实例

    这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29