安卓应用程序加密,签名和发布

1.加密,也就是代码混淆,目的呢,就是防止别人使用反编译工作破解。什么是反编译呢,对于安卓来说,就是你把源代码编译成APK,这APK别人能使用,但就是不明白你怎么做出来的,这时他使用反编译,把APK变成源代码,他一读源代码,就可以做出来一个和你一模一样的程序,从而抢了你风头。如果你研究了什么比较牛B的数学算法,开发了什么人人称好的游戏,只希望这份荣耀自己一直占有用,不希望这么快就和别人分享,你希望这个秘密能够保存的更持久一些,或者一些其他的原因,反正就是不希望别人快速山寨出你的软件,这时你就可以使用加密。但加密和反编译是相对的,加密只能减慢别人山寨的速度,但对于我们聪明的中国人来说,只要有时间,山寨出来是迟早的事,所以呢,不要太迷信加密,加密只能使你的产品保持新鲜那么一小会儿。如果真有什么厉害的创意需要保密,那就申请专利吧。

安卓对于APK软件的加密,在2.3版的时候引入了proguard,如果你的工程是2.3,可以在你的工程目录下找到一个名为proguard目录。这目录会对你的代码做一定程度的混淆,要使用proguard混淆代码,只需要在项目根目录下的文件default.properties 里添加一行代码:

proguard.config=proguard.cfg

如下,就是一个完整的default.properties内容

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "ant.properties", and override values to adapt the script to your
# project structure.

# Project target.
target=android-10
proguard.config=proguard.cfg

但安卓默认不混淆 Activity 、Service ... 类的 子类,核心代码不要写在这些类里。如果你希望更深一层加密,那就把核心代码使用C,C++来写的,使用jni技术,因为用C或C++编写的代码相对于Java来说很难被反编译。

2。签名:

要发布应用程序,从安全角度来说,签名是必不可少的,防伪,防替。特别在当前中国手机软件业乱象纷呈,吸流量吸费软件横行的年代,如果你开发一个牛B软件,别人做一个相同名字相同功能的山寨吸费吸流量软件,你可就惨了。恶名远播不说,说不定还要吃官司。有了签名,就能帮你洗清冤曲,还以清白。安卓没有第三方答名授权中心,只在发生纠纷时,可以通过第三方机构仲裁。

创建key,需要用到keytool (位于jdk1.6.0_24\jre\bin目录下),使用产生的key对apk签名用到的是jarsigner (位于jdk1.6.0_24\bin目录下),安装了JDK后,如果设置了路径,打开cmd或者终端,输入keytool,就能看到他的帮助信息,在ubuntu下和win下一样。

a,生成签名:
keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
/*说明:-genkey 产生密钥
       -alias demo.keystore 别名 demo.keystore
       -keyalg RSA 使用RSA算法对签名加密
       -validity 40000 有效期限4000天
       -keystore demo.keystore */
b,签名:
 jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息
       -keystore  demo.keystore 密钥库位置
       -signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/
    c.查看签名:

  jarsigner -verify -verbose -certs demo_signed.apk

安卓调试的软件,都有测试的自签名,不能再签名,可以右健点击选择export导出应用程序签名,别人的博客有介绍,感兴趣的可以去看看,

http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html,

 d.签名之后,签名之后,用zipalign(压缩对齐)优化你的APK文件

zipalign -v 4 demo_signed.apk final.apk


3。发布,找一个用户多的应用程序的网站,注册帐号,上传你的程序,现在国内很多网站都可以免费发布,如安智市场,注册也很快,一会儿就注册完成了。也可以注册Android Market吧,听说需要几十美金就可以注册一个开发者帐号,上传应用程序,以前听说我们大陆不支持收费软件,不知道现在开通了没有。这个市场是相对全球的,最好开发的软件支持英语。我注册了一个安智市场的开发者帐号,也就几分钟就完成了,android marker可能会需要更多的时间,呵呵。公布下国内目前的安卓发布网站。

1.Google Market  

      谷歌官方市场,你可以注册成为开发者,来上传自己的应用;但目前谷歌官方市场的英文用户大于中文用户,如果你可以同时上传中文和英文,应该更加符合用户需求;开发者账号审核周期大约1-2天,你上传的应用只要符合要求可以立即被发布。


2.运营商移动应用商店(排名不分先后) :

    中国移动MM: http://mm.10086.cn/

    中国联通WoStore: http://store.wo.com.cn/

    中国电信189Store: http://www.189store.com/

3.独立电子市场(排名不分先后): 

    亿优市场:  http://www.eoemarket.com/

    木蚂蚁: http://www.mumayi.com/

    N多网:  http://www.nduoa.com/

    魅族市场: http://app.meizu.com

    机锋市场:  http://apk.gfan.com/Index/Index.html

    安卓市场:  http://sc.hiapk.com/himarket

    安卓星空:  http://www.starandroid.com/apkclient

    应用汇:  http://www.appchina.com/

    安智市场:  http://market.goapk.com/ (不支持软件墙)

    XDA软件市场:  http://android.xda.cn/

    历趣市场:  http://an.liqucn.com/

    网易市场: http://m.163.com/android/

    爱米软件商店:  http://www.aimi8.com/

    开齐应用商店:  http://market.kaiqi.com/

    安丰网:  http://www.anfone.com/ (不支持软件墙)

    喜游游:  http://www.seyoyo.com/  

    优优网: http://www.uooyoo.com/soft/9716.shtml

    酷派: http://www.coolmart.net.cn/developer/coolmart/index.jsp


    TOMPDA市场: http://www.tompda.com

    飞鹏: http://www.fpwap.com

    非凡软件站: http://www.crsky.com/default.html

    ZOL: http://xiazai.zol.com.cn/downloa ... android_page_1.html

    安卓星空: http://www.starandroid.com/dev/index
    
    APK小游戏: http://www.apkxyx.com




方式二、Android手机论坛的合作  类型:极少费用

       按照第一种方式仅仅是提交到下载平台是远远不够的,基本上中国Android手机用户都会泡论坛;因为有太多需要沟通和交流的,而论坛也是一些国外最新应用首先发布的集散地。

       和论坛的合作方式有两种:1,建立官方账号,有新版或升级,或意见反馈可以直接于用户接触; 2,于论坛官方合作活动,活动是带动安装量,以及收集用户反馈的最好方式,一般一次好的活动策划,可以为一个应用带来几千至上万的安装;成本仅仅是活动奖 品的赞助,大约每次活动几千元。(当然目前一些相对商业化的论坛已经开始针对活动收取广告费,那就另当别论了)。

目前国内比较火排名前7位的Android手机论坛的推荐:

    安致论坛

    AVAV安卓论坛

    木蚂蚁手机乐园 

    安智论坛 

    摩托罗拉手机论坛 

    风暴数码

    安卓论坛 

    ZOL应用下载

小评:论坛的用户忠诚度高,如果活动成功会行成较好的口碑传播。

方式三、寻找第三方ROM(定制操作系统)合作内置  类型:免费

      目前国内的用户在拿到手机,除了到论坛去交流问题,寻找资源,也会寻找更加符合国人使用习惯的第三方ROM进行刷机;目前人气比较高的几款第三方ROM都是以论坛进行发源地。


MIUI ROM 

       由小米出品的MIUI ROM,因为其美化的效果在初期吸引了众多追随者,但随之也暴露了一些例如太过于耗电、更新频繁等弊端;但仍然不影响初级用户对它的喜爱。

       因为小米除了MIUI ROM做了众多周边应用,据了解至少有上百款应用,因此想植入的最基本前提是你的应用是否和他目前已开发的上百款应用没有竞争关系。

点心OS 

       由创新工场的点心团队推出的点心OS,目前不对用户开放;为一些国产手机厂商例如,夏普,提供手机系统方案。优势在于如果能够被点心内置,就有机会直接 在这些国产手机中出现,预计使用点心OS的手机在2011年下旬应该会面世;但和点心的合作,需要有对时间周期有较强的心里准备,因为从一款手机的操作系 统定制到手机面世大概也需要一年多的时间。

木蚂蚁ROM 

       木蚂蚁的ROM目前还未行成品牌系统化,但木蚂蚁联合民间高手推出的木蚂蚁ROM,在众多Android的用户中获得一致口碑,尤其是木蚂蚁HTC DHD ROM,被成为目前国内DHD ROM中性能最强的一款,因此获得了众多追随者;并且其推出的一些列一键ROOT等工具也帮它吸引了一批ROM爱好者。并且相对来说,木蚂蚁目前更关注在 Market和论坛而没有开发过多应用,相对与合作伙伴会发生的竞争关系及冲突较少。其王牌主打功能以 省电、透明、高效为主。 参考文章: http://erbo2008.iteye.com/blog/1326786 http://ictch.iteye.com/blog/1045194 http://hi.baidu.com/lvqiyong/blog/item/ef8a8657da8491deb645ae12.html http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html http://www.eoeandroid.com/forum.php?mod=viewthread&tid=154655

你可能感兴趣的:(MTK专栏,android应用开发)