7 fesng

尚未进行身份认证

CSDN年度博客之星和博客专家,研究生期间国家计算机重点实验室成员,毕业长期在一线互联网专注于Android开发以及Android漏洞挖掘研究。

等级
TA的排名 712

Android代码如何重构

讲一下Android代码重构的思路1.新增提取函数<1>复杂逻辑拆成函数<2>大函数拆成小函数2.父类和子类之间转移函数<1> 把子类的x相同逻辑,提取成父类函数<2> 把父类的非通用逻辑,提取成用到的个别子类中的函数3.类之间转移函数如果类之间重复调用耦合,可以考虑把耦合的逻辑全部提取到一个类,符合单一原则4.复杂类拆分成几个类...

2020-04-23 02:08:29

初级程序员如何把握机会,快速成长

本文并不是标题党,下面说说自己的一些思考,废话不多说,上结论:问题就是最好的机会不要害怕遇到问题,而是在遇到问题时候,刨根问底,搞清楚问题背后的原因,彻底的解决它,每次解决一个问题,你就能上一个台阶。久而久之,你遇到问题就不是怕或者焦虑,而是兴奋。会不会遇不到问题呢?会,那你就无敌了,无敌是一种寂寞。举个日常例子说明-重构重构主要干啥1.提取函数2.抽象父类3.抽象模板。。。...

2020-04-22 03:00:48

Android的6个编程原则

面向对象的原则1.单一原则2.里式替换原则本质就是继承和多态,继承或者实现类可以代替父类3.依赖倒置原则本质就是面向接口(抽象类)编程4.开闭原则向扩展开放,向修改关闭如何做到本质也是面向抽象编程5.接口隔离接口要拆解的足够细6.迪米特原则一个类要对他调用的对象知道的最少。...

2020-04-21 01:50:37

Android 10适配总结

Android 10 聚焦移动创新、安全隐私和数字健康三大主题。具体适配点如下:1.原先支持向下兼容的V4和V7 support包,替换为Android X包2.存储权限适配,变成分区存储:应用内文件,应用外特定目录文件和公共文件(媒体文件和非媒体文件)3.imei不能再获取,变为和厂商合作的OAID等替代方案4.API版本大于28时,默认http请求限制,通过在Admenifest文件...

2020-04-15 12:23:25

2019年推荐的技术书单

包括再次看的和首次看的书,很多书多次看收获很大,温故而知新,比如《重构》。摘录基本觉得不错的书1.《Android开发艺术探索》2.《Android 源码设计模式解析与实战》3.Android软件安全与逆向分析4.深入理解java虚拟机5.《重构》6.《Android插件化开发指南》7.《计算广告》...

2019-12-31 01:50:43

程序员必备的10个辅助开发的软件神器

前言(欢迎评论区列出你认为牛逼的开发神器~) 本文来自MeloDev的投稿,他的博客地址: http://www.jianshu.com/u/f5909165c1e8程序员必备简捷开发辅助工具总结 写在前面:工欲善其事必先利其器,拥有简捷的开发辅助工具能大大提高我们程序猿的开发效率。Melo刚到学校就给大家总结了一些常用的辅助开发的工具,希望大家能喜欢,闲话不多说,马...

2017-11-28 00:39:12

程序员面试考察的5个方面

面试时程序员绕不过去的话题,我的理解是具体分为如下5个方面:1.基本功正所谓美团说的基本功,程序员面试的基本功,每个人的理解不一样。但无外乎几个方面:编程语言+数据结构+算法+平台编程经验。平台编程经验举个例子是你用java,你能够在后端框架写程序还是能够移动端开发安卓。编码规范编码规范不是背一下就行了,背后体现的是项目经验的积累,如何写出高质量的代码,比如编写的代码稳定,可靠,满足安全...

2019-12-26 00:28:23

多线程安全和锁优化概述

什么是线程安全?通俗的说就是对象本身完成了同步优化,保证外部随意调用的不用在考虑同步,互斥,调配等问题Java线程安全的5个等级1.不可变。基本类型是用final修饰,对于对象指的是行为不会改变内部状态。比如String类的操作都是返回一个新的String。还有Integer等类,内部变量都是final的。2.绝对的线程安全定义是:不管任何条件,调用者都不用做额外的同步措施。实际是很...

2019-09-01 19:02:56

深入浅出Java虚拟机-Java编译概述

#Java虚拟机存储上图分为线程共享和非共享,其中堆内存是用来存放Java对象的,虚拟机栈和本地方法栈都是存放方法信息,前者是通过栈帧结构存放方法的参数和本地变量,以及方法的返回地址和调用地址等信息,后者是存放本地方法的信息。方法区是存放类和常量的信息的。#垃圾收集算法1.标记清除2…复制,量少的时候3.标记,整理,用于量多,碎片化时候。#分代收集算法#编译过程##1.第一...

2019-08-25 18:55:20

安卓Context详解

外观模式定义外观模式就是复杂系统对外的简单统一接口。便于把内部的复杂和外部的简单调用隔离。Activity举例-代理模式Activity的startActivity()其实是context的子类完成的。Activity本身是context的子类,继承于ContextThemeWraper==》contextWraper==》context。contextWraper有个对象是mBase就是...

2019-06-30 23:07:56

Android的Handler机制深入浅出

1.Message设计模式和成员命令设计模式callback存储post(runnable)里面的runnabletarget就是存储处理他的handle(这里是命令设计模式,命令和执行者分离,messagequene取出来执行不会混乱)享元设计模式静态变量sPoolSync是用来对象同步的。sPoolSize计数。sPool是链表的头指针。message是享元设计模式。整个安...

2019-06-29 23:26:58

安卓Binder入门

图说架构四部分结构四部分 Client ,server ,servicemanager,binder驱动binder内核:是一个文件,处于内核空间,能够传递跨进程的数据,Binder引用计数,建立Binder的内存空间和引用,分别对应Binder_node和Binder_ref,类似一个路由器的角色。Client:新建Client一般是通过集成AIDL.stub来完成,服务名类似域名...

2019-06-16 22:06:50

华为的文化

最近了解了一些关于华为的文化,发现华为牛逼是有原因的。1.以客户为中心这是从客户的角度,最近腾讯也在转型“产业互联网”,这个客户是谁?比如你卖给一个公司软件管理系统,虽然是员工用,但决定买不买的是老板,那么老板就是客户,那么好用就不一定能卖,而是老板满意。2.以奋斗者为本奋斗者协议还有不让雷锋吃亏扥,轮值董事长等,轮岗等。后续继续补充...

2019-02-20 23:09:59

Java和Python语言比较

背景作为一个Java老程序员,最实现一个功能,发现了python的实现代码,就直接拿过来用了,在改动的过程中,去官网看了Pyhton的语法,发现了和Java的几点不同,算是抛砖引玉,如有错误,欢迎指正~类型Java是周所周知的强类型语言,这个优势在大型项目中体现的很明显,比如:阿里和美团的后都是Java语言,但是也引入了不够灵活的毛病。Python是弱类型语言更灵活一些。结...

2018-09-09 19:18:59

产品方法论(三)

《结网》系列读书笔记 这本书已经被陆续的读完了,总结总是落后半拍,坏处是容易遗漏细节,不过这样也有好处:那就是总结思考,把对我印象最深的写出来。产品经理的工作流程检查和体验产品腾讯的pony ma不只是作为ceo,更是腾讯产品的首席体验官,他在半夜三经把产品改进体验的邮件一度被传为美谈。 作为产品经理,我们一定要使用我们的产品,你自己都不使用,怎么指望别人使用,只有在不断的...

2018-08-19 21:40:15

产品方法论(二)

《结网》读书笔记系列概念文件化这是非常重要的一个步骤,我们需要一个文件贯穿产品开发的始终,作为指导的明灯。我们常规意义的理解就是产品文档,其实形似不重要,主要是内容。1.结构图一定要描述清楚产品的结构,可以采用MECE原则,也就是互相排序,完全穷尽额思路。通俗点就是面向对象的思路思考产品,然后分类阐述产品的功能,越详细越好。2.说明文档这个每个公司都有规范吧,最接近常规...

2018-08-18 19:27:35

产品方法论(一)

这是我的《结网》系列读书笔记和思考。《结网》读书笔记产品初级要考虑的问题我们初次操刀一个产品时候,除了考虑这个产品本真,哈还有一个比较重要的事情是: 1.我们的竞品是什么? 2.如何跟踪行业动态和行业数据? 很好的回答这两个问题,可以保证你及时跟踪行业的动态,这可以很大限度的避免闭门造车,物极必反,但也不要一样的模仿,也要消化吸收。确认好产品概念1.不要拒绝cop...

2018-08-05 20:58:33

ReentrantReadWriteLock(互斥)和CountDownLatch(同步)解析

今天讲一下Java常用的两个类,一个是常用的互斥类,一个是同步。ReentrantReadWriteLockReentrantReadWriteLock和同一个包下面的ReentrantLock都是用于互斥。区别是ReentrantReadWriteLock效率更高,分为读写锁。 读锁:ReentrantReadWriteLock.readLock.lock() 写锁:Reentran...

2018-07-09 22:45:10

Android源码设计模式-模板模式

模板模式模板模式在Android源码中出现的很多,比如Activity和Srervice的生命周期,启动过程,还有AsyncTask类等。模板模式可以理解为一种算法流程的集合,可以通过构造函数来灵活控制流程,实现抽象方法,来具体化细节。使用1.具有相似流程的算法,可以考虑抽象出模板。 2.在重构过程中,可以把相似的子类抽象出一个模板父类,比如我们Android的BaseActiv...

2018-07-01 17:05:20

Android中的源码设计模式-备忘录模式

定义备忘录设计模式的定义就是把对象的状态记录和管理委托给外界处理,用以维持自己的封闭性。角色1.笔记本:很多的内部状态需要被建立一个备忘录来管理,创建和取出备忘录来恢复状态。 2.备忘录类:实体类用来记录笔记本的状态 3.备忘录管理类:用于管理备忘录,存储和取出。在Android中的典型使用状态保存是Android中备忘录模式的典型使用,主要对应Activity的两...

2018-06-24 19:36:25

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 博客之星
    博客之星
    授予通过"CSDN博客之星评选"中脱颖而出的十大博客之星称号的用户。
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。