开篇
Kyson

本篇文章算是给自己一个新的起点,回顾过去7年的工作,学习颇多,感悟颇多,但似乎总结不多,就算偶尔记录一些,也都是零零碎碎不成文章,有人说“做一件事情最好的时间是十年前,其次是现在”,所以我想,就从现在开始,新开这个博客,会在这里中主要记录过去这么多年的积累,对技术和管理的思考、整理总结移动基础技术,比如Android性能优化,JVM,Android Framework,Linux Kernel,还可能会有些网络相关等等,都是过去几年自己Focus的点,另外也会有一些对技术和管理方面的思考,如果能够在总结自身的同时带给读者一些益处,那就更好了

大学

记得大学时期花了家里2300块买了一个Android Nexus S曲面屏手机,从第一眼看到就被深深吸引,于是一次机会,做了个Android 4.0 Holo风格的文件浏览器,代码比较简单,说白了就是用各种File API,那时候Android权限管理不严格,所以很多文件都是可以访问的,倒也没有遇到太多问题。后来陆陆续续做了几个简陋的App上传到了应用市场,那时候应用市场雨后春笋,几年时间国内就几十家,这些年被Google Play和几个头部厂商的商店基本蚕食,这是后话。当时几个App获取了不小的下载量,后来回想起来,这个时候Android方兴未艾,是创业的最好时机,不过当时视野局限,很难意识到自己是风口上的猪

4lz7echg8qs0

南京

毕业以后开始在南京一家公司做Android的游戏应用市场,游戏分发的平台在那时候处于起步,也算火热,公司虽然不算行业头部,倒也没有什么压力

刚毕业充满热情,孜孜不倦,带我的师父能力很强,记得当时几天的时间就把下载框架搞定了,各种多线程操作、断点续传、Handler操作玩的666,所以在我眼里,这就是我要追赶的人。公司规模不大,主营的Android App客户端也就4、5个同学开发,所以也没有分什么垂直业务,基本上所有的页面都会写一些,不过对技术的认知浅薄,有一阵子把整个网络请求的业务代码自认为地重构了一番,整个继承4、5层,继承关系梳理地滴水不漏,自认为代码水平已经很强了,多年以后当我读到《代码整洁之道》,再回顾那时候的重构,一下子明白了我的Leader看到我重构后的代码开玩笑说的那句 “这些继承类写得很溜,不过要实我就一把梭”,理解了代码的组合和继承的优劣、业务代码中面向对象和面向过程编码的优劣

那时候的公司很多还是965,所以有大把的时间自己分配,虽然还是会玩大学时期的游戏,不过还是做了两件有意义的事情,虽然没有得到多少物质上的回报,不过一定程度上也拓宽了一些代码以外的认知

  1. 写了一些开源项目
  2. 长期维护了一个产品
  3. 开设Blog

13、14年Android开源项目中涌现了大量的自定义View,处理一下View的宽高,定义一下绘制方式再处理一下手势就可以了,所以赶了个潮流,仿照某网站的Loading动画写了一个自定义的Loading View WhorlView,代码很简单,就一个类,不过发出去没多久就收获了100多个Star,给我狠狠虚荣了一把,这里涉及到一个问题,那就是除了虚荣,开源能给我带来什么?

11j8jor33ngw

另外在这段时间,我花了两年的业余时间维护了一个日程管理类的App,当时的目的很简单,就是给新的技术框架练练手,顺便感受一下创业过程,当然最重要的是做一个真正自己都想用的日程管理产品。

那时候Android技术更新迭代频繁,我需要学习最新的组件、最新的设计、最新的技术,比如Material Design刚出来时出了很多新的设计元素和组件,基础框架也从HttpUrlConnect之类的到Okhttp、Retrofit等等

App大概迭代了三个大版本,至于多少小版本已经记不清了,整个研发流程虽然简陋,倒也五脏俱全。从需求、产品设计、编码测试、上线运营都由我一个人完成。而我在整个开发运营过程中也了解到一些技术以外的东西,这大概是最大的收获吧

区别于一般的移动互联网产品产品,我在App很显眼的一级入口加了个用户反馈的功能,最大限度地倾听用户地真实诉求,用户反馈多的时候一天也能收到十几条,说什么的都有,这大概是我工作以来离用户最近的一次,加上自己对产品功能的直觉

需求收集大概一个月后就立项,开始画产品原型,一般画个Axure草图就可以,毕竟产品功能还是比较直接。我在App几乎所有代码能埋点的位置都埋了点,希望后续能从数据中发现一些产品问题,不过很可惜,当时并没有这样的分析能力,所以收集的数据也几乎没有用武之地,而UI/UX设计方面,由于门槛较高,所以图片和Icon资源基本都是从其他App上扒下来

现在的产品经理在研发过程中通常有一套固定思路,功能灰度上线,做AB,看数据,定结论,一个功能需要同时做几套方案,后期根据用户的反馈再适当调整

编码阶段基本上是组合各种开源软件,由于练手是我的重要目的之一,所以一直是采用最新的技术框架。后端一开始用一些免费的Paas服务,基本够用,到后来买了阿里云打算重构一番,但因为时间问题最终无法完成。开发结束也基本算是测试完成,有几个免费的自动化测试网站,可用度不高,权当Monkey使用,用来测一些崩溃什么的,线上的崩溃收集也只需要一些免费第三方服务即可

那时候开始搭建了自己的博客,由于那时候市场匮乏安卓的技术内容,所以即使我只是写一些很简单的,也还是收获了一些博客读者。当然基于Wordpress搭建的博客SEO也还可以

上海

再后来因为工作太轻松(黑人问号)学习缓慢,换了工作来上海,新公司的部门处于起步阶段,工作强度一下子很难跟上,好在自己年轻的身体还算可以,抗了下来。但是之前维护的App、开源项目等等就停了。不得不说,965的工作时间真的人性化。

工作内容现在看起来和前几年没什么区别,写一些业务,但是毕竟积累了几年经验,所以对一些技术上的问题很严格,和后端的服务和产品、设计同学免不了争执。起步阶段产品功能缺失太严重,所以那时候的业务基本上就是在补齐缺失的功能

刚开始部门在公司的地位很低,基本上是一帮人自己在玩,不过也算是一步步稳扎稳打,后来体量大了一些,拆分了垂直业务团队,我被分到了基础组,开始了架构的学习,当时带一些同学负责整个App的基础组件、架构和一些公共的业务,几年时间基本都是做网络、启动、路由组件、APM、市场评分等等基础项目

一次偶然的想法,写了一个读取CPU和内存的Demo,于是写了一个开源项目,悬浮窗上显示当前的使用内存 MemoryMonitor,后来找了一圈类似的开源项目,发现并没有特别称手的,于是一步步完善,成了现在的AndroidGodEye项目 https://github.com/Kyson/AndroidGodEye,这也是这个同名博客名字的由来,项目整合了很多性能相关的功能,一站式、傻瓜式地分析出性能问题,给了一些公司和个人思路和想法。最近,我思考自己这么多年性能优化地经验,重新审视了性能优化这件事,在后来的公司完成了一些更有意义和价值的性能优化项目,而我对性能优化这件事情也有了更深刻的理解,希望后续可以另外开一篇文章讲讲

zras1kyduo

之前的学习偏好一直是希望不被一家公司的业务所捆绑,所以都是一些通用的能力和技术,矛盾的是,我也常常会因为离用户太远,产生了一种焦虑心理,我们常常挂在嘴边的“技术为用户服务”的理念到底如何实践?如何保证自己能够认清这个行业?更重要的是,我是否在做一件对社会有价值的事?

在此期间我做了几次尝试,尽可能把自己做的基础框架和用户和业务绑定,和公司的其他团队一起调研一些性能指标和用户体验的关联,推动一些应用市场反馈和优化AppSize项目。这些尝试结果还算理想,至于分析的数据到底有没有参考价值,坦白说,我并没底气

下一站

2020年下半年,终于还是从4年的公司里离开,开始新的征程。在新环境里专注技术,周围同学有不少技术专家,在一些方面可以说很专业,所以技术上的成长很快,但就像本文开始说的,感悟颇多,总结太少,所以就从2021年开始,重新开启AndroidGodEye博客,不忘初心,重新启航

3l88r4lgo240

  • Post title:开篇
  • Post author:Kyson
  • Create time:2021-02-10 15:47:19
  • Post link:https://hikyson.cn/2021/02/10/开篇/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
 Comments