如何发布打包并发布自己的Android应用(APP)
-
前面讲的都是关于Android开发方面的知识点和技术,不少朋友可能会感到疑惑(甚至迫不及待的想知道。因为有不少的朋友是想借此来发一笔小财,当然有点小激动了)----那到底我该如何打包、发布自己开发的APP,怎样将我的APP放到网上工别人下载,怎样保证我的APP安全及版权问题呢???...
第一步,在Eclipse中选择需要打包的项目,然后右键--选择Export,会弹出一个打包的提示框,如下图所示。
按Next之后,会继续出现一个提示框,这里你可以选择自己需要打包的项目(默认是刚才选中的)如下图:
按Next之后,会弹出一个关于“Keystore”的提示,选择“Create new Keystore”,并浏览、选择签名文件要保存的路径,
(关于Keystore的原理、作用等这里暂时不细说,请大家发布前务必保存好该签名文件,非常重要的。) 如下图所示:
这里请注意签名文件的命名,不能与该目录(将要保存到的目录)中已存在的文件重名,无法覆盖的,否则无法下一步。
按Next后,出现如下图所示的提示框:按照自己的实际情况和需求,填写相关信息后。选择导出APK文件的路径,点击Finish完成。
这样,就可以轻松的打包并签名自己的APP啦!
关于签名文件的作用,以及如何保护自己APP版权,如何升级自己的APP,如何将自己的APP上传到各大市场提供下载...
后续的文章中,将会详细讲解。欢迎大家关注。
-
-
以上,我通过图解和文字描述的方式,向大家介绍了具体的操作步骤。
今天,我将重点给大家介绍,发布时候生成的“签名文件”的作用(前面提过,叫大家一定要保管好此文件),如何验证自己的App是否发布成功,是否成功签名,以及发布后的apk文件如何上传(一般上传到哪里去,要怎么弄呢?要注意那些问题等等)。
谈到“签名文件”的作用,首先我想到了Windows下的“DLL地狱”。如果读者是一位Windows程序员(尤其是年纪大一点的程序员),谈“DLL”色变,那可真是个噩梦啊。
所谓的“DLL地狱”,就是指“DLL文件覆盖”(因为Windows文件系统有个原则,同一个目录下面如果出现同类型且类型命名相同的文件,后者将覆盖前者。)。好了,这大概不是本文的重点,有兴趣的读者可以参考相关资料。
后来到了.NET的时代,这个问题得到了很好的解决。熟悉.NET且有一定深入研究的童鞋都应该知道,.NET中有一种“强命名程序集”的概念,正是用于解决这个问题。
形象点说,就是给了“DLL文件”签名、描述,让他们能够区分开来,从而避免“地狱”。(个人浅浅的认为,不知道这样讲是否正确,不足之处请指出)。
回到Android中来,这年头开发Android应用的人可不少(因为想赚钱的人实在太多了)。那“包名、类名”这些是不是很容易出现“撞车”呢?有了签名文件,这些就能够得到很好的解决了。
APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。
比如:你发布在“电子市场”的应用,一段时间后你需要升级应用了,继续使用你以前的“签名文件”,这样就能保证你的版权和安全。道高一尺,魔高一丈。
在中国大地的屏幕上,再牛B的软件也可能被破解的,有签名文件,就能很好的防止这种事情(不能完全)。
这样签名其实也是开发者的身份标识。交易中抵赖等事情发生时,签名可以防止抵赖的发生。
上面说了几点,都是使用签名文件的好处。不一定很完整,但都是很常见,很典型的。
那我们如何检查自己发布后是否“签名成功”呢???
其实,我们使用Eclipse+ADT插件从开发环境安装到手机中的APK文件已经包含了ADT插件的Debug签名文件。但是这不是发布时候的“正式签名”文件。读者可以参考我上文中的具体步骤,尝试着发布自己的app,并请保留好签名文件。
签名完成后,你可以用winrar打开apk,在Meta-inf目录下,用文本编辑器打开CERT.RSA文件,如果能看到部分你建的key时候输入的文本就是正式签名了,如果测试签名会有debug字样。(一般情况会乱码,但是用肉眼仔细观察,你就能略微的看清楚一些啦)
值得提醒的就是,软件代码更新后(需要发布新的APK了),要将Manifest的android:versionCode值+1,每更新一次都要加1。
弄明白这些之后,该向大家讲讲上传应用了。由于Android是一个相对开放的平台,所以上传应用的限制也低一些,而且缺乏官方的规范。不像苹果和它的APP商店那般封闭。国内而言,上传应用的网站有很多,国内比较有名的就是“安卓市场”,“Android 电子市场”,“机锋市场”......
不同的市场审核规则也不尽相同,但是大同小异。还有一些值得注意的是:注意你的APP语言(国际化),屏幕分辨率及尺寸的支持...(当然,这是打包前就应该做好的工作啦)