安卓教你如何山寨App

作者: 帅气小伙 | 来源:发表于2016-05-06 18:12 被阅读5721次

    作为大学生时刻重视创新,但是创新的前提是会模仿。作为一名大三狗,项目做到了,套路也多,下面给大家分享一下我山寨一个看图App的经历。

    我为什么要做看图App,而不做新闻呢?性格,因为大家都知道我是一个喜欢装X的人,喜欢发朋友圈的程序员(*^__^*) 嘻嘻……。我最不喜欢做贴代码的技术文章。

    主角(倒霉蛋)----(yo 美女)

    我并没有涉黄

    目标功能

    1.根据分类获取图片列表

    2.查看图片详细

    3.分类订阅

    厨具

    1.Fiddler4(手机抓包工具)

    2.jadx-0.6.0(反编译工具)

    食材

    1.仿今日头条源码(http://blog.csdn.net/vipzjyno1/article/details/26514543)

    2.仿简书下拉刷新源码(http://m.blog.csdn.net/article/details?id=50989549)

    试吃

    1.使用Fiddler4抓取App的请求包(安装就不解释了)

    详细教程看着:http://blog.csdn.net/zshq280017423/article/details/8928616

                                           这里是工具抓取的请求

    分类 图片详细 返回是这样的

    Ok,数据我有了,哈哈。其实很多小公司的应用都可以这样搞,如果有加密怎么办,没关系,我们召唤jadx,新一代反编译神器(微信都可以)。

    2.通过反编译了解目标App架构

    这是它的反编译源码

    很多人会问,如何看?其实都是套路

    套路一:AndroidMainFest看启动Activity(程序入口)

    套路二:绘制页面跳转逻辑图

    最快的方法就是把App装到手机上,这里跳转逻辑就不写了。

    套路三:看项目所用的类库

    在上篇文章我们已经完成了对简书的反编译,这里不赘述了

    这里用到开源类库有

    1.universal-image-loader和glide

    2.photoview

    3.Xutils框架

    买菜

         通过试吃,我们知道了这个应用大概的功能实现和局部逻辑,用到的技术,下面我们说一下如何买菜吧。软件工程有一句话叫:“不做重复的轮子”,意思就是说:能不自己写就不自己写!那么我们应该去哪里找这些人家做好的菜。

    1.https://github.com/(囊括国内外优秀开源项目)

    2.http://www.oschina.net/(收录了很多优秀的源码。有项目文档的,质量较高)

    3.http://www.eoeandroid.com/(国内较活跃的移动开发社区)

    因为朕经常关注这些,所以这类似的源码,我怎么可能没见过。

    顶部分类 订阅拖排

    哈哈,这就是我要的菜。

    炒菜

    因为我比较喜欢简书,所以就仿了一下简书的风格,随便拿了它的UIO(∩_∩)O哈哈~

    在炒菜之前要先搭建好自己的项目框架。我是这样分析的:

    1.数据接口为Json接口,用fastJson会快很多

    2.因为有大量的图片加载,就用universal-image-loader好了,至于glide没用过

    3.有列表的下拉刷新和瀑布流显示,那就用RecyclerView+SwipeRefreshLayout来实现吧

    4.photoview,图片多触点放缩,必须用啊

    5.网络请求库,有很多我选了Android-async-http(简单暴力)

    6.缓存,我用的是ACache(github上的),主要做response的缓存

    7.设计模式,因为考虑到时多分类同一样的布局,用fragement+viewpager的方式比较合适,而这样必须要求,view的逻辑要跟model解耦,所以考虑用了MVP设计模式。

    项目结构

    看来锅已经准备好了,下菜吧!

    1.将下载的仿今日头条源码导入eclipse

    你们导入是没错的,我手贱删了点东西,恩!

    说道移代码,套路小王子我,又要只招了。

    套路一:找到你想抄的布局。(你妹,是参考好吗?,哦参考)

    这里因为是主布局main.xml,我们要抄那个顶部标签(喂!我再次跟你讲,哦参考)

    com.topnews.view.ColumnHorizontalScrollview(the next target)

    套路二:顺藤摸瓜

    这就是瓜了

    找到了应该怎么办,傻X,Ctrl+C 和Ctrl+V啊,快捷键我最熟悉了,还有谁!

    我就这样收下了

    套路三:摸完瓜连藤都不用留下(O(∩_∩)O哈!)

    (卧槽)没想到这个自定义view不报错,装B失败!没关系换一个。看看它的分类管理怎么实现的吧。为了节省时间我已经找了。

    分类管理所在视图

    O(∩_∩)O~可以装B了,我们把它直接拿过来。

    火火火火火

    这些红色的就是它的藤,嗯,连藤都不要留下,回去找!

    完美装B,一句代码都不漏

    套路四:命名统一规范,假装是自己做的(套路深不深?)

    其实命名统一规范是为了适应自己的编码风格,为后面的代码奠定基础,说白了:就是让自己写代码方便,不用拘束于他人的编码风格。

    品尝

    折腾了这么久,肯定累了,必须run一下,闪退!(兄弟,你的activity注册了没- -,权限呢),做菜就是这样要自己不断的尝试。发现味道不合适就得改,把它改成合自己胃口。嗯,我很机智。因为原来的分类不合理啊。我要的是美女分类。那我该我如何去找呢?

    字符串大法

    完美找到分类所在Java类,修改啊!

    又装了一波,不好意思

    分享

    经过很久的品尝,相信你的菜已经可以上得了台了,再也不用伤害你的家人了,在此我也献上我的APP截图。

    首页(偷了简书的UI- -) 参考的分类管理 瀑布流看图 多触点看图

    这个APP看的是高清套,对内存的把握比较重要,很容易OOM

    献上我的github地址:https://github.com/konglinghai123/zhai

    总结

        希望各位看官开得开心,我写技术文章不喜欢贴代码,我觉得这样太不负责了,尽管贴的代码有注释,但是思考的过程还是要读者自己想。我觉得我这种像打直播的方式看得比较轻松,比较是大家在空余时间看的文章。

    用一段广告词结束这篇文章:“喜欢我就点我吧!”

    相关文章

      网友评论

      • TA比烟花寂寞:现在都没数据了,是爬虫的地址失效了吗?
        帅气小伙: @1b234dd27e00 可能是吧,你看看代码吧
      • TA比烟花寂寞:现在都没数据了,是爬虫的地址失效了吗?
      • ea9aa88d014e:太牛逼了。。怎么收费。帮我高仿一个.
      • 7744e9198680:膜拜大神!! 求大神教我!
      • 5ca49e5337a1:不错啊,小伙子,我得想法被你实现了。
      • c7c7fbb0efef:大二表示很惭愧
      • 4588e4274830:套路
        帅气小伙:@代码描绘人生 你也可以分享一下套路,马上关注你
      • 571e103ce6e6:不错,回头试试,
      • 大张鑫:有趣!居然才大三
      • 程序员Anthony:摸完瓜连藤都不用留下, 这句话非常赞 :smile:
      • Lyrus:麻花藤需要你
      • 4588e4274830:不错哈
      • e19752dfa551:简直666
      • 6ee72519b51d:作为学生狗,你的套路不错哈哈
        6ee72519b51d: @帅气小伙 不会
        帅气小伙: @_Vv 你觉得我贴代码讲,你会看吗?
      • yangjianan:666,学到了不少!作者继续加油!:+1:
      • 74f2385a62c0:这个收藏参考了
      • OpenDreamer:有套路,不错,不错
      • OpenDreamer:有套路,不错,不错
      • a9084f71531b:我也经常用ffiddler4 测试手机软件
      • 浪迹天涯online:顺便问一下,这样抓到的图片,算侵权的吗?
        浪迹天涯online:@帅气小伙 所以想了解下
        浪迹天涯online:@帅气小伙 哦,我就想知道如果用于商业用途,是否会造成侵权。之前看UC浏览器上一大把新闻,都是从别的网站上抓取过来的,个人觉得UC不太可能会一个一个去找新闻网站商量,因为网站的数量实在太多了
        帅气小伙: @浪迹天涯online 不知道啊,反正不用于商业用途的,做什么都可以,反正是在后台没准备好的情况下去提前开发,抄它接口格式也是可取的
      • 浪迹天涯online:人工点赞
        帅气小伙:@浪迹天涯online 感谢支持
      • 皮特天:可是大部分app已经加密混淆了,怎么搞?
        皮特天: @帅气小伙 我也试过了,都有加密混淆啊
        帅气小伙: @TestSuper 没有用的,微信和QQ都试过了,可以看到的
      • cdf7be87930a:楼主666学生狗吗 @帅气小伙
        cdf7be87930a: @帅气小伙 祝你能找到公司收留哈哈😁😁😁
        帅气小伙: @life0 今年大三,在找公司收留
      • hacker87:加油
      • 6f8eaf0fc6ee:封你为山寨大将军,思想不错。
      • 蓝天小白云:我还以为一模一样呢!😓
      • 5b674470f1cd:ios的如何借鉴咧?:smile_cat:
        速度与激情_007:@混江龙 上一些论坛下demo借鉴
        heguorui:@帅气小伙 iOS是用Objective-C完成的,是编译至可执行代码,并不是编译至中间文件,没办法反编译,最多是抓包,和Android的借鉴方式上,有区别
        帅气小伙: @混江龙 本人家里穷,我不敢开口说买苹果,如果给我一个月时间,苹果用我这种思维完全胜任,这是内功
      • 2349d1825e3b:脑残粉站位🙃
        蛋包饭加蛋黄酱:@一碗喵加绵绵酱 脑残粉表示看不懂:worried:
      • 向日葵的笑:需要那些技术呀。我是初学者谢谢呀
        米米me:@抹茶与橙汁 github+hexo方便
        向日葵的笑: @帅气小伙 嗯嗯
        帅气小伙:@抹茶与橙汁 php wordpress最好,或者cms系统,上开源中国找建站系统,你会看到很多。
      • 向日葵的笑:怎样搭建个人博客呀提些建议吧

      本文标题:安卓教你如何山寨App

      本文链接:https://www.haomeiwen.com/subject/pksjrttx.html