仿内涵段子项目
HongChengDarren
忘记不了铭记,坚持不了放弃,但只要活着...
展开
-
自己动手打造一套IOC注解框架
1.概述 这是我们的内涵段子系统架构的第一期分享,希望大家可以先去了解一下这一期的内容:2017Android进阶之路与你同行。在介绍内涵段子整个项目的时候我们也说好了会分析系统源码设计模式,第三方框架源码解析,然后自己动手一点一点打造一套内涵段子框架。这一期的内容对于部分哥们可能有点麻烦,如果觉得抽象请看视频讲解。 那么什么是IOC,控制反转(Inversion of Control,英文原创 2017-02-04 17:05:26 · 1562 阅读 · 0 评论 -
Android插件式换肤框架搭建 - 资源加载源码分析
1. 概述 大部分控件我们都会使用,但是我们未必知道其资源加载的原理,目前换肤的框架比较多我们可以随随便便拿过来用,但早在几年前这些资料是比较少的,如果想做一个换肤的框架那就只能自己一点一点啃源码。 如果说我们现在不去用第三方的开源框架,要做一个换肤的功能,摆在我们面前的其实只有一个问题需要解决,那就是如何读取另外一个皮肤apk中的资源。 所有分享大纲:2017Android进阶原创 2017-03-14 12:36:44 · 2644 阅读 · 1 评论 -
Android进程间的通信 - 耍流氓的方式保活Service
1. 概述 上一期我们已经阅读了源码Android进程间的通信 - IPC(机制)Binder的原理和源码阅读,这一期我们就得用到它了。记得前几年在公司做购物商城,有一个倒计时的功能,上头非得实现要实现这个功能,当时的想法就是引咎辞职,因为APP应用一退出后台启动的Service根本不管用直接被杀掉了,前几年的事今天我们就来拯救拯救。 声明: 1.文章综合了很多其他的一些资料,所以非常原创 2017-03-30 11:31:11 · 1312 阅读 · 6 评论 -
自己动手写DB数据库框架(性能优化)
1. 概述 今天还是有点小激动的因为腾讯课堂于这周六可以正式开始讲课了,所以回到家就开始写文章心情还是比较好的,这里我就不打广告,只希望以后可以通过自己的努力让更多的人学到更好的东西而且不要钱,也希望自己勿忘初心。 基于目前还是小白,那么写过的代码每次必会优化,我们就拿上次自己写的数据库框架优化一下吧。之所以自己写一方面是因为内涵段子项目的需求问题,必须按需定制;还有一方面我想写得更好在性能原创 2017-03-08 17:13:53 · 890 阅读 · 0 评论 -
Android进程间的通信 - IPC(机制)Binder的原理和源码阅读
1. 概述 当初决定分享内涵段子的这个项目我有些担心,担心很多东西心里虽然有了轮廓和细节。但是如果涉及到的东西比较多,那么就有可能没办法去讲太多的细节,况且某些哥们还不会C和C++,所以如果的确觉得IPC这方面比较难可以多去找找这方面的文章看看。这里我们就从三个方面去讲解: 1.1:进程间通信的一个小事例; 1.2:应用层的具体流程分析; 1.3:google源码层的具体走向;原创 2017-03-24 18:51:13 · 756 阅读 · 0 评论 -
Android图片压缩加密上传 - JPEG压缩算法解析
1. 概述 我们在开发的过程中肯定很多项目都需要上传图片文件,我们往往都是直接上传,相信很多哥们都并未对齐做过压缩。当然很多哥们估计也在这方面费劲心思,往往都是采用google提供好的BitmapFactory,但是效果不太理想,如果觉得还行那请你把3M的图片压缩到300K或者更小试试看看效果,这里考大家一个经常问到的面试题:一张 422x644 的 PNG 图片,我把它放到 drawable-x原创 2017-04-05 21:39:52 · 2107 阅读 · 0 评论 -
Android图片压缩加密上传 - NDK终极压缩和加密上传
1. 概述 上一期已讲到Android图片压缩加密上传 - JPEG压缩算法解析,我们不打算采用BitmapFactory去压缩,而是采用JPEG的压缩算法,当然大家最好是将两者结合一下,今天我们直接去网上找一个已经写好的开源库,然后我们在他的基础上再写一些Native代码就好,当然也可以自己一步一步去写算法处理。 所有分享大纲:2017Android进阶之路与你同行视频讲解地址:周日晚上八点原创 2017-04-09 13:38:53 · 1641 阅读 · 0 评论 -
Android技术总监应该干的那些事
当年多少次做梦都在想以后能不能做到那样的一个程度,可不可以自己不用干活在旁边指挥指挥就好,轻轻松松就拿钱,而且是超高那种。后来发现完全是两码事,如果你不能在短时间内做调整,我敢保证累不死你。多人的开发班子,多条业务线,反正别人做不了的你都得上,关键是还有人给你挖坑。你不做没人做,你不抗没人抗。以下是个人的一些套路,团队人数不一样,公司性质不一样,都可能不一样。套路是这么个套路,但能参考培训 有的时原创 2017-04-21 09:28:56 · 1383 阅读 · 0 评论 -
Android插件化架构 - Activity的启动流程分析
1. 概述 Android插件化架构,目前第三方的框架比较多,早几年自己用的是DL框架,这个框架的源码比较简单主要用的是静态代理。如果我们自己要去写一个插件化架构框架那要解决的问题会分为几个方面,类的加载,资源和布局的加载,广播的管理方式,Activity的加载和生命周期管理,Service的插件化,ContentProvider的插件化等等等等,反正加载一个没有运行的app到主程序需要解决的问题原创 2017-04-14 13:30:43 · 1269 阅读 · 0 评论 -
我的麻烦才刚刚开始
1. “你在干什么?写了这些东西有什么用?很开心吗?”几年前同事是这么跟我说的(当着我),其实那时我是写给自己看的,没想过要怎样会怎样,但是我知道自己没那么差。 写了那么多文章,直播录制了很多视频分享,很多人说我无私奉献,说我是大神,其实我麻烦大了,我知道自己没那么好,很多东西我都不会,有时候在群里看你们讨论技术问题,我不说话其实是插不上嘴。 回过头看看,从CSDN转到简书短短的两个月的时间粉原创 2017-05-07 14:06:20 · 817 阅读 · 0 评论 -
Android插件化架构 - 拦截Activity的启动流程绕过AndroidManifest检测
1. 概述 了解了Java的动态代理机制之后,配合上一期的文章Android插件化架构 - Activity的启动流程分析,那么接下来就需要亲自操刀去拦截Activity的启动流程了。前面好事没少干,那么现在就来干干坏事,到底怎样才能让没有注册的Activity启动不报错呢?答案就是Hook下钩子。 2. Hook启动流程 怎么样去找Hook点是个问题,把钩子下在哪里呢?一般的套路肯定最好原创 2017-04-17 12:54:24 · 1433 阅读 · 0 评论 -
Android增量更新和签名校验
1. 概述 NDK图片压缩有很多人反应是蒙的,包括在文章评论的一些哥们,也包括私下聊天的一些哥们。那么内涵段子后面的所有分享都离不开NDK,比如gif图片加载,视频压缩,视频直播推流等等。当然我们也可以去网上下载别人写好的,但是对于我们来说没任何意义。经过后来一系列的考虑,内涵段子项目暂时告一个段落。希望后面有时间出一些C和C++的语法基础,然后我们再来讲,这期是现阶段最后一次分享NDK了,这次我原创 2017-04-19 16:07:44 · 2020 阅读 · 0 评论 -
2017Android进阶之路与你同行
1.分享的项目 新年新气象上半年主要围绕着内涵段子这个项目转。其实这个自己期待已久加我QQ的某些哥们也时常在问,我坚信今年不会让大家失望。最新版本以6.0.1为例: 2.分享的内容 分享的内容大致分为三个部分:系统架构部分:主要有Android源码阅读设计模式分析,以及第三方框架源码分析,自己手动一步步搭建仿内涵段子项目的整体框架……功能实现部分:主要有原创 2017-02-03 10:38:30 · 4434 阅读 · 3 评论 -
Android插件式换肤框架搭建 - setContentView源码阅读
1. 概述 内涵段子架构第一阶段已经更新完了,后面我们主要是以google源码为主,今天我带大家来看一下setContentView的源码,请先看一下如果继承自Activity去打印一个TextView与继承自AppCompatActivity去打印一个TextView分别是这样的:继承自Activity: android.widget.TextView{ac5cd17 V.ED..... .原创 2017-03-14 12:38:00 · 744 阅读 · 0 评论 -
Android插件式换肤框架搭建 - 无缝插件式换肤框架完善
1. 概述 基于插件式换肤框架搭建 - 资源加载源码分析和插件式换肤框架搭建 - setContentView源码阅读前两篇文章,那么目前我们不仅可以从另外一个插件皮肤包中获取资源了而且还可以去拦截系统View的创建,那么现在我们只要写点代码就可以达到无缝换肤的效果了。所有分享大纲:2017Android进阶之路与你同行视频讲解地址:周六晚上八点2. Hook拦截View的创建 前面讲解模板设计原创 2017-03-20 15:05:14 · 911 阅读 · 0 评论 -
Android Studio插件开发之 - 入门篇
1.概述 上一期我们已经自己动手打造了一套IOC注解框架。如何才能像ButterKnife一样自动给我们生成代码呢?所以我们不得不去了解Android Studio的插件开发了。 我们在开发的过程中对Android Studio的插件应该并不陌生,我们也时常用到比如: GsonFormat:现在大多数服务端api都以json数据格式返回,而客户端需要根据api接口生成相应的实体类,这个插件原创 2017-02-06 12:28:53 · 622 阅读 · 0 评论 -
Android Studio插件开发之 - IOC注解生成器
1.概述 上一期我们已经分享了Android Studio插件开发之 - 基础入门篇。那么现在我们来动手写一个IOC注解生成器,有点类似于ButterKnife的插件一样自动给我们生成代码,在网上找了很多资料国内基本就在HelloWorld阶段,也有很多哥们向我反应插件的代码还是有点蒙B。代码方面能理解就理解,不理解也不强求,如果你能改一改别人已经写好的插件就最好了,实在不行我们干脆也别折腾了大不原创 2017-02-07 15:30:29 · 1174 阅读 · 0 评论 -
Android热修复之 - 打补丁原来如此简单
1.概述 今天我们来看一看纯java代码打补丁的方式会是怎样,纯Java代码是什么意思?因为上一期讲到阿里开源的热补丁里面涉及到NDK,会是会用但要自己去写NDK很多人估计不考谱,今天我们就用一种最简单的方式去实现,灵感来自腾讯提供的解决方案Tinker,但是我们自己的实现方式与它又不相同。上一周要大家去看类的加载机制也不知道大家看得怎么样了,某些估计连BaseDexClassLoader的源码都原创 2017-02-16 09:03:07 · 2370 阅读 · 0 评论 -
Android热修复之 - 阿里开源的热补丁
1.概述 上一期讲到Android热修复之 - 收集崩溃信息上传至服务器,我们获取到用户手中上线的崩溃信息上传到服务器后该怎么办?如果直接发布版本要用户去下载肯定不乐意。这一期我们来看一下怎么去打补丁就是大家口中所说的热修复,什么是热修复?这里就不做介绍了就是不重新安装apk就能修复Bug。 上次说这周需要讲解NDK有些哥们就说会蒙B,阿里的解决方案里面的确涉及到了NDK,我就做简单的讲解后原创 2017-02-14 09:16:42 · 906 阅读 · 0 评论 -
Android热修复之 - 收集崩溃信息上传服务器
1.概述 开始想收集崩溃信息是因为测试的哥们老是说崩了,但是一过来就开始拍脑袋说 我*怎么好了?所以后来上网查了很多信息,找到了一种方法。大致的流程就是在用户崩溃的时候我们获取崩溃信息、应用当前的信息和手机信息然后把它保存到手机内存卡,再找我就直接找出来看看。后来衍生到上线后某些奇葩机型会有部分问题,所以不得不上传到服务器,后来发现居然可以配合热修复一步一步如此神奇,接下来我们来玩一玩如何才能把原创 2017-02-14 09:15:58 · 756 阅读 · 2 评论 -
Android模板设计模式之 - 构建整个应用的BaseActivity
1. 模式介绍模式的定义定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模式的使用场景多个子类有公有的方法,并且逻辑基本相同时。重要、复杂的算法,可以把核心算法设计为模板方法,周边的相关细节功能则由各个子类实现。重构时,模板方法模式是一个经常使用的模式,把相同的代码抽取到父类中,然后通过钩子函数约束其行为。2. UML类图原创 2017-02-08 15:40:29 · 1515 阅读 · 2 评论 -
Android网络框架选择(Volley、OkHttp、Retrofit)
1. 背景 好早就在网上看网络框架源码的时候,突然看到有人在问Volley、OkHttp、Retrofit我到底应该用哪个呢?我其实想去回答但是又怕误导别人,今天随着项目的推进我们来对比一下,先上一张图: 上面的这些应该都认识,我们使用第三方的开源库,说好听一点是为了降低开发周期和难度,说得不好听一点就不说了,要我自己去写我还真不知道该怎么办,我们只能来分析分析碰到个女鬼我们几个汉子原创 2017-03-02 15:49:18 · 1155 阅读 · 0 评论 -
Android链式调用 - 打造第三方的网络引擎
1. 概述 上一期我们提了一下Volley,Okhttp,Retrofit到底应该选哪一个?但是的确目前第三方的网络框架比较多入流的不入流的打酱油的自己写的等等等等,也不知道再等个几十年会出什么样的,到时候我们可能还是要换,然而随着版本的迭代这是一个很头疼的事情,如果要更换更好的网络框架成本就比较高了,今天我们来看一下怎么样打造一套网络框架引擎,一方面为了封装,一方面为了方便切换网络框架。所有分享原创 2017-03-02 15:56:53 · 954 阅读 · 0 评论 -
自己动手写DB数据库框架(增)
1. 概述 在Android开发中我们经常要进行各种网络访问,比如查看各类新闻、查看各种图片。但有一种情形就是我们在规定的时间内每次重复发送的网络请求其实返回的数据可能都是一样的。比如一个电影类APP,每一次向服务器申请某个电影的相关信息,如封面、简介、演员表等等,它们的信息都是一样的,这样就有点浪费资源,最主要的是这些重复的请求产生了没有必要的流量。流量、流量、流量!!!重要的事情说三遍!而流量原创 2017-03-08 17:12:18 · 3876 阅读 · 0 评论 -
Builder设计模式 - 构建整个应用的万能Dialog
1. 概述 上一期的热修复相对来说有点难度,我其实也没往深里说如果实在看不懂可以看看视频,其实最主要的还是思路代码也就那么几行,这一期我们又回归到设计模式,相对来说要简单不少,这一期要讲的是一行代码如何显示所有弹出框效果。 视频地址:http://pan.baidu.com/s/1gfwZfF1 相关文章: 2017Android进阶之路与你同行 Builder设计模式 - 构建整个项目的原创 2017-02-27 14:37:30 · 810 阅读 · 0 评论 -
Builder设计模式 - 构建整个应用的万能Dialog
1. 概述 上一期的热修复相对来说有点难度,我其实也没往深里说如果实在看不懂可以看看视频,其实最主要的还是思路代码也就那么几行,这一期我们又回归到设计模式,相对来说要简单不少,这一期要讲的是一行代码如何显示所有弹出框效果。 视频地址:http://pan.baidu.com/s/1gfwZfF1 相关文章: 2017Android进阶之路与你同行 Builder设计模式 - 构建整个项目的原创 2017-02-27 14:37:42 · 620 阅读 · 0 评论 -
Builder设计模式 - 构建整个应用的NavigationBar
1. 概述 每个项目都必须处理头部部分,刚刚开始我们都是在activity布局文件中写一个布局然后findViewById去操作。渐渐的我们开始自定义View然后把自定义的头部写入布局文件中几下就可以解决头部的问题,并且也不用担心应用版本升级换风格问题。有人说我是用的ToolBar和ActionBar,我想说的是这些也是自定义View你看看源码就知道,只不过是google给我们的自定义好了,总之这原创 2017-02-27 14:39:08 · 561 阅读 · 0 评论 -
从3K到30K在长沙这座城市买房买车,23岁的年纪我到底经历了什么
内涵段子项目分享告一个段落,三个月的坚持最大的受益者是自己,收到了很多哥们的感谢,每篇文章也基本都有人打赏,我这里也表示感谢,反正答应过给大家分享的内容一定会坚持,也希望通过自己不断的努力带来更多好的文章和视频。 记得上次有人问过我30K的程序员日常都会干些什么,什么时候才能到你这样。首先我技术其实很菜的,只能说我很幸运而已,其次我根本没法回答这个问题,因为每个人所走的路不一样所追求的也不一样原创 2017-04-21 09:29:50 · 2335 阅读 · 1 评论