1.怎么找到代码

作为客户端的开发,工作中经常遇到,后端的搭档来帮助找接口概况。产品司理来询问之前的某些功用的事务逻辑,而这些代码或许逻辑都是前人遗留下来的……没有人知道在哪。那怎么快速的找到你想找到的代码方位呢?

(1)无敌查找大法

双击shift键,页面上有什么就在代码中全局查找什么,比如标题,按钮姓名~找到资源文件布局文件,再进一步查找用到这些文件的代码方位。

(2)log输出大法

在不方便debug的时分,能够输出一些log,经过检查log的输出,能够清晰的看出程序运转时的运转逻辑和变量值。

(3)profiler检查大法

咱们要长于运用AndroidStudio供给的工具,比如profiler。在profiler中能够看到手机中正在运转的Activity的姓名,甚至能看到网络请求的概况等等,功用很强壮!

(4)全能法找到页面

在你的Application中注册一个Activity的生命周期监听,

ActivityLifeCycle lifecycleCallbacks = new Application.ActivityLifecycleCallbacks();
registerActivityLifecycleCallbacks(lifecycleCallbacks);

在进入到页面的时分,直接输出页面路径~

@Override
public void onActivityCreated(Activity activity, Bundle bundle) {
    Log.e(TAG, "onActivityCreated :" + getActivityName(activity));
}
2.怎么处理bug

这儿评论的是那些第一时间没有思路不知道怎么处理的bug。这些bug有的是由于开发过程中粗心写错变量名,变量值,运用了错误的办法,少执行了办法,之前修改bug时某些当地被遗漏了,或许不小心把不应该改动的当地做了改动。也或许是由于运用的第三方库存在缺点,也或许是数据问题,接口返回的数据不正确,用户做了意料之外的操作没有被程序正确处理等等。

处理棘手的bug之前,首要要稳定自己的心态。记住,心态很重要。不管这个bug现已形成了线上多么大的影响,你的boss多么着急的催着你处理bug,要有一个平稳的心态才干处理问题,否者,慌慌忙忙紧紧张张的状态下去处理bug,很或许会形成更多的bug!

(1)先看再想最终动手

处理bug的第一步,当然是稳定的复现bug。根据我的经验,假如一个bug能够被稳定的复现,至少它就被处理了70%。

经过调查bug的现象,就能够对bug做个大致的归类或许定位了。是由于数据问题?仍是第三方库的问题?还或许是代码的问题?

接着便是debug,看日志等惯例操作了~

假如经过上面的操作,你仍是束手无策,那么请往下看。

(2)改变现状

假如你真的是一点思路也没有,很或许某些或许形成bug的代码也看不太懂。我建议你做一些改变现状的操作,比如:注掉某些代码,测验其他的输入数据或许操作。总而言之,便是让bug的现象呈现改变!
那么你做的这些操作必定是对这个bug是有影响的!!!然后再逐步康复之前注掉的代码,直到康复某些注掉代码之后,bug的现象康复了。很有或许这儿便是形成bug的方位。bug定位了之后,再去思考处理办法。

(3)是技术问题仍是事务问题

在实际的开发过程中,许多问题是经过技术手段处理不了的。或许是事务逻辑就呈现了矛盾,也有或许是是由于一些奇奇怪怪的王八的屁股。这类问题要早点发现,早点提出,才干早点处理。有些或许踩红线的问题,作为开发,不要企图经过技术去处理!!!否则或许要去踩缝纫机了~~~

(4)张张嘴远胜于动动手

我一向深信,世界上有更多才能比我强的人。我现在面临的bug也必定不是只需我面临了。张张嘴问问周围的搭档,问问网站上的大神,现在网络这么发达,只需他人处理过的问题,就不是问题。

许多时分的bug或许只是由于你对某些范畴不了解,去请教那些对这个范畴了解的人,你的问题对他们来说或许不是问题。

(5)bug处理不了,那就处理提出bug的人

有的时分的bug或许不是bug。提出bug的人或许只是对某些操作或许现象不理解,或许没有达到他们的预期。他们就会提出来,他们觉得现在的程序是有问题的……这个时分能够去测验处理这个提出bug的人!让他们觉得这不是一个bug。当然你没有这种“处理人”的才能的话,就仍是老老实实去处理bug吧~

(6)处理了bug之后

人的生长在于,遇到了问题,勇于直面问题,处理问题,并让自己往后避免再呈现类似的问题!

处理了bug,不管这个bug是自己形成的仍是他人形成的。要长于总结,避免日后自己再写出类似的问题。

3.怎么完成不会的功用
(1)不要急着回绝

遇到怎么完成不会的功用,内心首要不要着急抗拒。

人总要生长,开发的技术怎么生长?总不是像流水线工人那样做些一些“熟练”操作吧?总要走出自己的舒适圈,测验处理一些问题,打破自己的上限吧~

你要知道,在Android开发这个范畴,其实没有什么跨越不了技术壁垒!只需他人家有的,你就或许有!他人家做出来的东西,你就能做出来。这种信心,至少要有的~

(2)大事化小小事化了

一个杂乱的功用,通常能够分解成一些简略功用,简略的功用就能够霸占!

那么当你在面临要完成一个杂乱功用或许没有接触过的功用开发的时分,你所要做的其实便是分解这个功用,然后处理分解后的小功用,最终再把这些小功用组合回去!

心态要稳,天塌了有个高的顶着

遇到问题,测验处理,实在不行,就要及时向上级反应。作为你的上级,他们有职责也有才能帮你处理问题,或许至少给你供给处理问题的一种思路。心态要稳,天塌了有个高的顶着。

工作不是日子的悉数,工作只是为了更好的日子!不要让那些无聊的代码影响你的心情影响你的日子!