andro 职业过来人 码住要看

http://blog.csdn.net/reboot123


请问大牛对功能和框架的认识有哪些?

比如对于一个小公司来说,什么样的框架最适用,您经历过的小、中、大公司对于框架是如何处理的?自己封装框架?还是什么选择市面上流行的框架? 另外,对于一个团队,您觉得什么最重要?对于一个leader,怎样管理好自己的team。

2 liuxian13183  大空袭  2016.09.08 17:44回答

你好,大牛这个称呼,一直都是给予别人的,我在坚持的事就是把复杂的东西,简单化的介绍给大家。

对于框架来说,刚开始在小公司的时候,没在于过框架,大部分逻辑写在Activity里,然后加上model和自定义view就完成一个项目;跳到中型公司的时候,也是原始期,项目刚开始,只是加入了controller,封装db管理器和逻辑管理器等;而到大型公司的时候,可谓真的是使用框架,从两位大牛身上学到比较多的东西,
详见支付宝黎三平《支付宝钱包客户端技术架构》和天猫嗷啸《漫谈天猫架构设计》,网上应用都能搜到
分别介绍支付宝项目依赖开发和各种层次的设计,到目前所在公司经过两年多积累形成一套自己独特的架构体系。

自己做架构,主要以公司的业务结构为基础搭建,遵循MVC或MVP或MVVP等模块,使用设计模式对整体进行一个定义,让后续的同学理解你的用意,一方面有利于项目快速开发,另一方面也有利于项目的稳定,同时可以分拆其中的一些模块进行细化和再造;当然在满足自己公司的业务要求时,可以寻求一些更好的体验或者优化方案,而项目最重要的莫过于网络框架和图片加载框架,而数据埋点也很重要,只是目前没发现什么样去做这块的框架;
现在常用的架构层级是:View层、activity层、model层、fragment层、service层、core层、依赖层、数据解析层、数据请求层、加载过程层、
适配器层、工具层等,还有一些独立的功能和模块,以及分享和相似功能继承和抽象等。

作为项目负责人,或者叫架构师,你需要理解每套框架背后的设计原理,比较其优劣性和稳定性,做出合理的选择;以免选择后没源码不方便维护,
或者框架本身还有明显bug未解决;是否满足项目的业务如加载中,如缓存在sd卡和内存等一些feature;这些都是要考虑的核心内容,最终改造成
你自己的东西,像大公司一般不会轻易用别人的框架,可能存在漏洞泄漏自己的数据等等,但小公司也不担心那些,还不足够大到让人重视,暂时可以把性能和效率放在第一位,重视用户体验。

而对于一个团队,自身的管理能力,技术水平,都是限制团队发展和项目完成情况的硬性条件,比如平常项目期个人采用的日清法,可以有效推动进度;跟产品经理沟通一些需求实现方式,跟后端和UI沟通一些接口和设计问题;设计并维护架构,方便小组成员的开发工作,并在必要时给予提醒和帮助;做代码Review,保证代码质量,制定相应的项目要求和代码要求等;对团队进行定期培训和项目总结,争取福利也蛮重要的;对于某方面比较厉害的同事,可以将项目中一些模块或问题交给他,帮助他成长和满足其价值实现,尽量使用前沿技术和开发工具,使团队走在时代前列,自身也会有优越感;带团队呢,最主要的是:给大家提供良好的团队氛围,使每个人都能得到成长和价值实现,帮助大家争取好的机会和福利,以及做好面试把握好什么样的人可以加入团队-价值观、合作态度、学习能力、目标性等等吧。





关于职业发展以及团队管理?

请问在二线城市的小公司里,普通Android开发者的职业发展应该怎么向管理层过渡(具有前端以及后台开发经验)?以及当团队中有Android技术方面比你更好的新人进来时,怎么管理?

2 liuxian13183  大空袭  2016.09.08 15:31回答

你好,二线城市,一般指省会所在地,按照目前国家总体经济形势来看,还是不错的。
普通Android开发者,刚开始是需要自我提升的,努力做项目,和同事搞好关系,年轻不要气盛,尽量积累好人品

其次项目要多涉猎一些,像流行的框架多用用,最好自己分析下,不行就看看别人的理解,推荐几本书《Java编程思想》是必须看的,
《Android内核剖析》和《深入理解Java虚拟机》可以帮你更好的认识Android和Java,买来如果看不懂,可以放着,过段时间再看
等你看的懂,驾轻就熟的时候,说明水平也达到了,在这之前都好好做项目,先做这门技术一万小时,满足此定律。

然后一般只在一家公司,不能学到更多东西,薪资也会受到非常大的限制,可以跳一跳,平均2年跳一回,差的1年多也可以,这个时候你拥有比较多的工作经验,同时也可以逐步向前端和后台深处学习,俗话说:一样通样样通,就是说一样说通了,其他道理都是相通的,会学的很快,这时设计模式也需要熟悉,最好可以做一些项目架构,同时形成自己的架构风格和管理风格,如果有大公司的就职经验更佳。

当你工作5年,一般是职业的一个阶段期,需要稳定下来,沉淀职业生涯,积累财富同时自己也该考虑成家,这时最好找一个有前途的公司,或者说
跟自己性格吻合的,之前找到那是最好,工资水平处于当地中上等,最好有股份或者期权,以期待未来有更大的收获。

现在回答你第2个问题,如果团队中有新人进来,而且技术比你好-首先三人行必有我师,比你强这是好事,这样才可以互相学生和切磋,然而天下无不散的筵席,不是你先走就是他先走,关键是自己得到什么成长和锻炼,学到什么东西;只要你坚持做这一行,总有一天你能成为行业的顶尖,因为中途总有人转行去做其他职业,或者转型,都再所难免。所以不要担心这个问题,和他好好相处,取长补短,共同把公司项目做好,谁说的方案好听谁的,咱们做技术的不搞形式主义,事情做不好是最糟糕的,而且方案永远没有最好,只有更好,也方便你们培养一个上进的环境。而对于个人而言,如果已经是管理岗位,可以让对方在擅长的领域多发挥一些,鼓励他承担和挑战难题,一方面他的能力得到发挥,另一方面你的工作也会轻松许多,而且你也可以从中学到很多,用人之长,宽容大度;能管4个人,你就是主管,12个人就是经理,管的人能力越强,你个人的成就也会越大,千万要往大处想,不可斤斤计较。




有关于后台服务的问题?

app中有个功能,玩家通过我们app启动另一款应用(大部分是游戏类,所以比较占内存),我们app开启后台服务倒计时计算用户使用时长,当到达规定时间就发放奖励,但是当内存紧张或者回收机制比较霸道的手机上,总会失效,用户经常反应玩了规定时长,还是拿不到奖励,有没有什么能优化的方法或者地方或建议?

2 liuxian13183  大空袭  2016.09.08 15:41回答

玩家时间,建议使用token+游戏包名+毫秒的方式保存

关于后台倒计时,最霸道的做法,我们可以开一个进程:里面专门运行一个Service来做这个倒计时功能,使用Aidl的方式操作,Service要开放权限给到你的主进程。一个进程比如只有24M,你本进程即使死掉,它依然可以运行,下次进来继续从此进程中读取用户时间。

其次,你可以把发放奖励的玩家时长配置到文件中,然后判断只要应用未关闭就执行倒计时,并叠加写入文件,比如隔2s就写入文件中,这样即使下次重启,你也可以提取出上次玩家玩的时间,继续执行倒计时-当然可以存在sd卡、内存卡、数据库、SharePre甚至网络服务器端

最后,如果能把你们耗时的程序打成so包运行,或者放到其他进程运行,把自己的应用内存消耗减至最少,可以使用RxJava的schedule方法操作,
这样给用户奖励的事情,最好将时长写入文件来配置比较靠谱,当然最靠谱的是写入服务端数据库,这样可以有效保护用户的权益,减少对用户权益
的损害。





有关于定时提醒的问题?

应用中某些功能模块需要做到定时提醒功能(类似部落冲突这款游戏建造时间到了自动菜单栏通知提示),用alarmmanager可以做到监听系统时间,到点了发送,但是在某些手机rom下(特别是三星,GC回收有点过分,灭屏就全回收)灭屏或者当前app进程被杀后将收不到提示,有些甚至定时太长也会导致收不到,或者一亮屏就一股脑全部提醒,有没什么好的优化或者保活策略?

2 liuxian13183  大空袭  2016.09.08 15:43回答

那首先,你可以参加上一个同学的答案:
玩家时间,建议使用token+游戏包名+毫秒的方式保存
关于后台倒计时,最霸道的做法,我们可以开一个进程:里面专门运行一个Service来做这个倒计时功能,使用Aidl的方式操作,Service要开放权限给到你的主进程。一个进程比如只有24M,你本进程即使死掉,它依然可以运行,下次进来继续从此进程中读取用户时间。
其次,你可以把发放奖励的玩家时长配置到文件中,然后判断只要应用未关闭就执行倒计时,并叠加写入文件,比如隔2s就写入文件中,这样即使下次重启,你也可以提取出上次玩家玩的时间,继续执行倒计时-当然可以存在sd卡、内存卡、数据库、SharePre甚至网络服务器端
最后,如果能把你们耗时的程序打成so包运行,或者放到其他进程运行,把自己的应用内存消耗减至最少,可以使用RxJava的schedule方法操作,
这样给用户奖励的事情,最好将时长写入文件来配置比较靠谱,当然最靠谱的是写入服务端数据库,这样可以有效保护用户的权益,减少对用户权益
的损害。

核心思想,就是把任务写入文件,或者写入服务器,通过本地轮循的方式,来操作即将触发的任务;从整个系统来考虑,所有的功能都是用文件来实现的,再加上驱动和触屏,所以文件是编程的基础,存在这里,外加服务端备份,是处理棘手问题的利器。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值