在平安科技 发展攀做Android开发发展怎样

安卓开发的学习、发展、晋升之路 - CSDN博客
安卓开发的学习、发展、晋升之路
安卓开发的技能学习、发展、晋升之路
& & & &做Android移动开发已经有三年时间,其中甘苦自知,对Android开发和对Android程序员的发展之路(主要谈技能的发展)有一些自己的感悟,在这里愿与大家分享和讨论。
三个“相对条件”&
第一:兴趣
这事不展开说了,每个程序员都知道,做码农,如果不能乐在其中,是很痛苦的一件事,因此,入行需谨慎。
第二:静气
如果你新入行,菜鸟级,你的工作主要是改bug,不停的接受改bug的任务,总之,都是小事,这时,也许你会焦虑,我的对策是:马上定一个目标学习计划,主动学习,因为大学里的知识体系基本无用,Android不难,三个月会有小成。
第三:平台
自行车再快,也没有宝马快。努力固然重要,平台也很关键,因为那里有很多大牛人可以迅速带你成长,如果你现在还没有一个好的平台,你就泡一些大牛出没的论坛,看几本好书,找机会换到宝马平台上去。提示:换平台的时机很重要,您至少得有大众的实力,宝马平台才考虑接收你吧。
做安卓开发的发展方向在我看来,基本上有两个方向(路线):技术专精路线和技术转产品路线。
路线1的晋升轨迹:Android初级开发程序员---中级---高级--软件架构师--系统架构师--项目经理--首席技术官
路线2的晋升轨迹:Android初级开发程序员---中级---高级--软件架构师--系统架构师--产品经理--产品总监
& &规划图来源:6座网 & &Android移动开发工程师职业发展规划图
详细介绍:
路线1:技术为王
  入门初级阶段:掌握Java基本知识(或任何其他面向对象语言),需要掌握Android SDK软件开发工具包,多看Android相关的文档,IDE (例如Eclipse),这些是必不可少的。顺便学习一下JavaScript脚本基础。掌握这些基本上已经可以算是入门了。
  晋升中级阶段:想晋升为到高级Android工程师至系统架构师的职位,很重要的一点就是学习研究源代码,直接查阅Android的源代码(这是看李宁老师的书得到的启发),源代码很容易从网上获得。同时,Android很大程度上是基于Linux内核的,所以学习 Linux的相应API以及各种操作也是十分必要的。还有,常用混合移动开发框架(例如:AppCan)。编译原理,高并发网站架构设计等技能。
& & & 高层发展阶段:再往上想发展到项目经理,还需要掌握Android 软件安全分析技术、软件开发常用测试、界面交互式系统设计,同时要补充些项目管理方面的知识,比如:软件项目风险管理常用团队协作开发工具需求分析设计设计模式。
  要做到公司首席技术官的位子,更多的是从架构考虑,包括:数据库系统优化、Windows Server服务器架设管理、网络安全技术与解决方案(Cisco)、海量数据库解决方案、大型服务器负载均衡优化技术等等。这是个需要绝对实力的职位。也是我的终极目标。
路线2:转型产品方向
   由技术向产品方向转型是很常见的,每个公司都有,成功的例子很多,一个好的程序员更容易成为一个好的产品经理,比如:周鸿祎,雷军。但在考虑转型的时候,要问一下自己为什么转型,走向产品,拼的就不再是单纯的技术能力了,做产品要懂人情,会管理,要事事练达,这里边的性格因素你要考虑。
   初、中期还是要储备技能,我不建议在初级直接转到产品,这等于放弃了你的优势,还是要静下心来把技术学会,老话讲,欲速则不达。
   一旦有转型的规划,就要提前学习产品经理的必会技能,如:用户体验设计、Axure rp快速原型设计工具、公关营销策划技巧、数据挖掘、需求分析设计、品牌传播、用户心理体验、软件需求说明文档写作、数据分析,哈,不少吧。
技能介绍:
路线1(技能专精)所需技能:
常用混合移动开发框架常用嵌入式数据库Android SDK软件开发工具包Web GIS开发Android嵌入式系统程序开发技术Java程序设计基础数据结构JavaScript脚本基础HTML5开发技能常用团队协作开发工具编程语言基础需求分析设计设计模式UML建模语言软件工程系统知识编译原理
路线2(转型产品)所需技能:
用户体验设计Office办公软件应用软件需求说明文档写作品牌传播数据挖掘公关营销策划技巧界面交互式系统设计数据分析Axure rp快速原型设计工具用户心理体验绩效量化考核量化管理需求分析设计受众心理学思维导图执行力人际交往与沟通能力
应该去读懂的书:
JavaScript权威指南(第6版)数据结构与算法分析:C语言描述疯狂Java讲义(第2版)Java编程思想(第4版)Android移动应用开发——基于Adobe AIR
完整的发展路线图:
& & 规划图来源:&Android移动开发工程师职业发展规划图
  其实还有第三条路线,就是自己创业,但不管哪个方向,对自己的未来提前客观的做出规划是有必要的,还是那句老话,机会是留给有准备的人的。
本文已收录于以下专栏:
相关文章推荐
本文主要论述的是android程序员的进阶之路,博主本人就是一名android开发攻城狮,所以这里讲述的大多数是android开发攻城狮的技术进阶之路,如有问题请多指正。大家都知道程序员之中有有菜鸟程...
* ListView分栏总结(元素标签法):
* 1.为集合中的元素设置区分标签
* 2.开子线程初始化数据,将不同的元素添加在集合中对应的位置
* 3.通知知主线程设置适配器
* 4.适配...
1、Rect和RectF的区别
Rect为int类型的,RectF为fla
从去年的11月中旬开始学习安卓,十二月中旬因为准备期末考试停了差不多一个月的时间,到现在断断续续是学习安卓有一个多月了,感觉还是没有真正入门,写一些简单的东西也需要依赖查书或者查询帮助文档。想开始简单...
APP项目总览:
1、APP有两个重要的组成文件,Java文件和xml文件,其中xml文件负责视图的布局,即“外表看起来的样子”,而Java文件实现APP所要实现的功能。
2、在生成一个APP时,项目...
(此文为本人android学习之路的笔记,属于基础;如果有错误,欢迎指正)
1.Button和ImageButton
(1)共有的特性:都可以作为一个按钮产生点击事件
(2)不同点:Button...
今天开始把遇到的坑记录在博客中,以后开发遇到了也就easy啦
……1. 实体类使用Parcelable序列化可能遇到的问题 class not found when unmarshalling ...
Android部分使用的是rxjava2.0+retrofit实现的
安卓开发之路
经过了两天的学习对安卓的Broadcast也有点了解了,为了加深qg
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)10被浏览3591分享邀请回答0添加评论分享收藏感谢收起平安科技上海android 面试记录 - CSDN博客
平安科技上海android 面试记录
上海平安科技 &面试记录 &8月29日
面试流程 笔试题加面试 &笔试题10道题手写快排(分治和递归 & 第一次排序后 key 左边的比key小 右边的比key大 &然后递归 &so easy)和冒泡(理解了这两个算法的实现思想 即使平时没怎么写过 回想下还是能写出来) gc的垃圾回收算法是啥 我就记得个我读j过计数回收 &这不太懂()
面试:一开始自我介绍 ,他简单看了下笔试题,看到我单例写的枚举(笔试题有道是写个安全的单例)
1他问这有什么问题 &我说没什么问题 enum的单例可以防止暴力反射 (其他的什么先加载 &后加载 duobercheck 都不能 )
他说 枚举会降低性能...
2然后问activity 又几种启动模式&
我说这没啥难度(这边说话有问题 &记录下 ),四种 singleInstance ,singleTask,singleTop,standard, &
他说:如果只是说这四种模式 确实没啥难度 他说了题 a-b互相启动 不重复启动 让我回去看看如何实现 (TODO 当时就想到使用singleinstance 启动模式让activity独占一个任务栈) &试验了下 可行啊 &&
&activity android:name=&.MainActivity& android:launchMode=&singleInstance&&
&intent-filter&
&action android:name=&android.intent.action.MAIN& /&
&category android:name=&android.intent.category.LAUNCHER& /&
&/intent-filter&
&/activity&
&activity android:name=&.BActivity&
android:launchMode=&singleInstance&&&/activity&
3java 的容器又哪些 &
&答:collection下面list,set &list下arraylist linkedlist &区别 数据和链表的区别 这边又问到list扩容的问题 我没看过源码 我说估计时在add时进行判断是否将要超出预设的容量然后进行扩容(申请更大的内存空间 ) & set下hashset &treeset &哈希表和二叉树的区别&
map下hashmap ,linkedhashmap & 问hashmap底层实现 我说用到了set (这边我感觉他觉得我回答不好 这边难道说hash表加链表 ) 然后说了下hashcode 和equals方法如何保证键相同值覆盖&
4然后问道webview的内存泄漏问题 &
我没遇到过 估计时泄漏了activity &我引出了其他的内存泄漏的例子 比如动画 解决方法onDestory时移除引用
还说到LeackCanary 内存泄漏查找神器 能帮助改善代码 避免内存泄露
然后他问内存泄漏的解决方法 :这我刚刚不是才说过 我说在ondestory移除引用 借助一些工具查找内存泄漏 如leackcanary 这刚刚的又说一遍
又说到webview 调用js 和js调用java &问我代码怎么写 我不喜欢记api &我就说webview通过websetting的一些代码function (这流程看看google官方文档很容易吧)
然后让我说具体点 setjavascriptenbable &和addjavascript 和interface 配合等实现java调用js代码 &
js调用java&
webview防止js注入 & js注入本质上是什么问题 我说是通过js执行一些linux命令 获取手机上的信息 或删除或修改 &http://blog.csdn.net/leehong2005/article/details/ &
然后他说什么版本修正js注入 我不记得 他说4.2 (现在也记住了 )
5List优化点 &
我本来不想说它 因为我都怎么用它了 recyclerview 更好用&
他既然问起来 就说了下常见得优化 说到static viewHolder &问问什么加static &内部类持有外部类得引用 &static在类加载得时候初始化 估计没答到点上&& (他提示&静态解耦合 )
---------------------------------------------------------------这边回来查了下 static不持有外部类的引用,达到解耦合的作用其次如果内部类中做一些耗时操作会有内存泄漏的问题
6不知道怎么说到图片压缩上了&
我说通过bitmapfatcory得options 和insamplesize &根据屏幕分辨率和图片分辨率得比值压缩 &又问具体代码说详细点 我觉得这已经很详细了 这我说得有问题吗》 &
他不是很满意 他问如果要将某个图片得内存压缩到100k &我说了下图片内存占用得计算方式 图片分辨率*字节数 (如arg8888就是*4) 配合一开始得图片压缩
我没做过具体压缩到某个大小 &//TODO &我试验下 &
然后说到png代码压缩 &我说可以用代码实现 &不过这png压缩不是美工给图时或者后台运维上传后台时就压缩过吗? &这估计聊不到一块去
我主动说你用过webp吗 》 &我说了下webp得优点 比之png jpg 图片大小缩小进40-50% 更节省流量和物理内存&
然后他问你用过icon front (他的读音为哎克放 我听成actfun &)
我说用过啊 A站啊 &你也喜欢二次元啊 &哈哈 面试完了回想起来好搞笑
我说你拼一下 &我说没用过 是做什么得好处是啥 & 他没说 & 回来查了下 矢量图标&/ 矢量图特点随意拉伸不变形 一套图标适配&
7scrollview嵌套listview切套冲突解决 & 一般难度的题目 &&
答:切套有那么三种情况 父布局和子布局同方向滑动冲突上上 左左 ,父布局和子布局不同方向滑动冲突 上下左右, &上面两种的嵌套,
&解决方法有两种 外部拦截和内部拦截 ,一般我不会用ScrollView嵌套ListView &他这么问考察点肯定是冲突的解决 他又问具体代码怎么写 &表达能力有点差&
下次问这些直接说talk is cheaper,给我台电脑我直接给你代码实现 &
下面给出外部拦截的实现方法 解决ScrollView的滑动冲突
&com.example.msi_yanb.myapplication.MyScrollView xmlns:android=&/apk/res/android&
xmlns:tools=&/tools&
android:id=&@+id/activity_main&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:paddingBottom=&@dimen/activity_vertical_margin&
android:paddingLeft=&@dimen/activity_horizontal_margin&
android:paddingRight=&@dimen/activity_horizontal_margin&
android:paddingTop=&@dimen/activity_vertical_margin&
tools:context=&com.example.msi_yanb.myapplication.MainActivity&&
&LinearLayout
android:layout_width=&match_parent&
android:orientation=&vertical&
android:layout_height=&match_parent&&
android:layout_width=&match_parent&
android:id=&@+id/lv_content&
android:layout_height=&400dp&
android:text=&Hello World!& /&
&ImageView
android:layout_width=&match_parent&
android:src=&@mipmap/ic_launcher&
android:layout_height=&wrap_content& /&
&/com.example.msi_yanb.myapplication.MyScrollView&-------------------------------自定义view解决冲突的外部拦截法模板 -------------------
public class MyScrollView extends ScrollView {
private ListView lv;
public MyScrollView(Context context) {
super(context);
public MyScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
public boolean dispatchTouchEvent(MotionEvent ev) {
return super.dispatchTouchEvent(ev);
void setListViewScroll(ListView lv){
public boolean onInterceptTouchEvent(MotionEvent ev) {
boolean intercept=false;
int x= (int) ev.getX();
int y= (int) ev.getY();
switch (ev.getAction()){
case MotionEvent.ACTION_DOWN:
intercept=false;
case MotionEvent.ACTION_MOVE:
if(y&lv.getHeight()) {//父容器需要当前事件{
intercept=true;
intercept=false;
case MotionEvent.ACTION_UP:
intercept=false;
default:break;
public boolean onTouchEvent(MotionEvent ev) {
return super.onTouchEvent(ev);
--------------------测试-----------------------------
public class MainActivity extends AppCompatActivity {
ListView lv_content;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] items=new String[20];
for(int i=0;i&20;i++){
items[i]=&items&+i;
lv_content= (ListView) findViewById(R.id.lv_content);
MyScrollView myScrollView= (MyScrollView) findViewById(R.id.activity_main);
myScrollView.setListViewScroll(lv_content);
lv_content.setAdapter(new ArrayAdapter&String&(this,android.R.layout.activity_list_item,android.R.id.text1,items));
8详细介绍下mvp
答:model层和view层分离,通过presenter层进行通信 层与层之间通过interface进行解耦合。
presenter持有model层和view层的引用, model 层和view层持有presenter层的引用。各个层之间高内聚低耦合 (这个词好哈哈)
好处 :分层 符合单一职责 利于复用 利于修改 利于测试
这边不懂的可以看下google的mvp sample
然后又问mvp配合哪些框架使用 (其实很多框架都能配合使用 我简单举了个EventBus)
然后说EventBus和广播的比较 & (如有不对欢迎指正)&
广播是四大组件之一,更加耗手机性能吧 &&
EventBus使用简单,可以传递任意对象,这边问到可不可以传int值 我说可以&
----------------------------------------一手写一道算法题-------------------------------------------------------------------------
描述 一个size为50的数组;随机分配1-50的给它 要求时间复杂度为O(n)
&span style=&white-space:pre&& &/span&int size=50;
int[] arr=new int[size];
Set&Integer& sets=new HashSet&Integer&();//存储随机1-50 赋值给arr
List&Integer& lists_random=new ArrayList&Integer&();//1-50
for(int i=0;i&i++){
lists_random.add(i+1);
for(int i=i&=0;i--){
int index=0;
if(lists_random.size()!=0)
index=new Random().nextInt(lists_random.size());//优化点
int item=lists_random.get(index);
//System.out.println(&index&+index);
if(!sets.contains(item)){
sets.add(item);
lists_random.remove(index);
}//运行了n次
System.out.println(sets);
for(int item:sets){
}//运行了n次
总时间复杂度3n
System.out.println(Arrays.toString(arr));
本文已收录于以下专栏:
相关文章推荐
好了,听说写面经,攒人品,是时候再写一波了。继上周之后,目前拿到的有3个offer,这里说说我在平安科技的面试过程吧。
首先简单介绍一下,平安科技是世界500强中国平安集团旗下的全资子公司,主要向...
以下是平安科技成都笔试面试的一些经历,说出来以备后来人看,分享目的,如有侵权我马上删除。
先说笔试以下是摘自某论坛的前人写的,跟我都一样,借用一下。
笔试分成三个部分,IQ测试,EQ测试,...
平安科技成都分公司校招面经
1.notifyAll有什么不好?
如果调用notify,多个线程中只会有一个线程从休眠转入阻塞状态,这个线程会参与争夺那个被synchronized的资源,而如果调用notifyAll,那么所有休...
业界新闻1)Apple Watch产品体验报告(产品经理角度)本文从需求分析,外观感受,交互设计,功能场景,差异化等方面给出了Apple Watch的使用体验。2)MySQL SSL/TLS连接存在安...
业界新闻1)关于AFNetworking 安全bug的回复AFNetworking代码维护者对文章 流行iOS网络通信库AFNetworking曝SSL漏洞 中存在的不正确的误导性描述的回应。2)跨平...
一份银行流水数据,因打印模糊导致部分金额不清楚。                  
收入、支出、余额满足以下3条规则:           &#1...
业界新闻1)WWDC 15 发布会在一段迥异过往风格的搞笑彩排视频之后,今年 WWDC 2015 拉开了帷幕,库克表示这是最国际化的一次发布会,有来自 70 个国家的不同开发者,在场有 80% 的人是...
业界新闻1)Java 9将于2016年正式发布Oracle已经宣布了Java 9的时间表,其目标是在2016年9年正式发布该版本。该时间表遵循Oracle每两年发布一个新的主版本的计划,虽然与先前的版...
业界新闻1)无人机将带领程序员进入一个新开发者时代将无人机和不同行业结合起来想象空间非常巨大。这种行业创新,只要能开发出不一样的产品体验,那么便有成功的可能。随着更多智能技术的加入,这种成功在消费领域...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 平安科技 领域发展 的文章

 

随机推荐