android之解锁新技能,平常的应用开发会用到的东东(持续更新)android工作经验总结

0.开源控件整合

Android开源库集合(控件) - 博客园小马甲 - 博客园

Android开发不得不收藏的开源库(控件)_hjh200507609的博客-CSDN博客

那些酷炫的RecyclerView开源库整理_chenhuakang的博客-CSDN博客

那些酷炫的RecyclerView开源库整理_chenhuakang的博客-CSDN博客(recyclerview的开源)

1.初始化控件用butterknife

butterknife空指针解决(butterknife配置\初始化)_JMGG的博客-CSDN博客_butterknife 空指针

2.一个应用里都应该有父类,比如activiy的BaseActivity,fragment的BaseFragement(这些都是需要自己定义的),更好的应用java的继承。

3.一个应用中至少要有一个工具包,工具包里会有很多工具类,来减少重复的代码,更好的应用java的封装

4.android的框架选择,mvp?mvc?都会用到,混合开发最好,如果逻辑不太复杂使用mvc,复杂了就mvp啦,mvp可以参考:

浅谈 MVP in Android_鸿洋_的博客-CSDN博客_android mvp

mvc参考(原理)(其实android的设计思想就是mvc,随便写的代码就是mvc的架构,view就是控件,model就是数据,C就是activity。以activity为控制器,将view和damodel连接在一起)

什么是MVC模式?MVC三层架构的含义和作用?_dengit_w的博客-CSDN博客_mvc三层架构是哪三层

5.当看别人代码不知道一个地方什么意思的时候,可以通过包的路径来看看,或者ctrl+左键直接进入内部看。然后在百度百度基本都可以解决。

6.依赖注入框架选Dagger2  配合 MVP使用(可以了解下)

浅析Dagger2的使用 - Android、Boy - 博客园

7.网络请求接口封装Retrofit+RxJava。自己总结封装的一套,网上的看的不是太懂就不推荐了。点击后面进行下载》》》》》》》(下载地址)

8.  简单、强大而且格式美观的日志打印工具    Logger

Logger 基本用法_月漾的博客-CSDN博客_logger用法

9.应用升级版本控制工具-友盟(需要key)

10.单例模式的理解:

android中什么是单例模式_百度知道

  单例模式实际应用

JAVA设计模式之单例模式_炸斯特的博客-CSDN博客_单例模式

11.观察者模式的理解:

     举例:简单而言就是  1对多。比如微信公众号,公众号发送消息,只要是关注了的用户都可以接受到消息。一个公众号对应多个用户。rxjava就是应用的观察者模式。

观察者模式的实际应用

JAVA设计模式之观察者模式 - 码头小渔夫 - 博客园

12.当你看到网上一个很好的例子了,先别急着copy,不如先新建一个项目模拟一遍,说不到有意想不到的收获。

13.装饰者模式(感觉就是多态的应用)2018 12 29日更正(只是包含了多态的应用而已,而不是就是多态的应用。看大话设计模式加深了印象)

Android设计模式(二十)-装饰模式 - 简书

14.常用的图片加载框架Glide

15.rxbus在rxjava中的应用

RxBus在rxjava2.0 的基本使用_Donkor-的博客-CSDN博客_rxbus rxjava

背压理解关于RxJava背压 |

16.TypeArray 保存xml设置自定义属性

https://www.colabug.com/2130548.html

17.Space,代替view,android中组件空隙,可以用他来占位用,不能设置背景色。

18.下拉刷新SmartRefreshLayout

https://github.com/scwang90/SmartRefreshLayout

19.android书籍和各种效果框架入口(也可以看开源中国)

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2018/0627/10444.html

Android学习 迷茫了来看看_zhang2222222的博客-CSDN博客

20.平时app的开发中会用到第三方的东西,第三方可能会给我们申请签名,如果生成的签名的话

  值得注意的是,生成的签名是debug(没打包的)版本签名还是打包了的版本的签名。

21.如果对recyclerview用着挺好的话  试试LRecyclerView

LRecyclerView是支持addHeaderView、 addFooterView、下拉刷新、分页加载数据的RecyclerView。

新增功能:SwipeMenu系列功能,包括Item侧滑菜单、长按拖拽Item,滑动删除Item等。

它对 RecyclerView 控件进行了拓展,给RecyclerView增加HeaderView、FooterView,并且不需要对你的Adapter做任何修改。

22.对话框加载MaterialDialog

https://github.com/afollestad/material-dialogs

23.标签如图(Chip Group)(Android Design Support Library v28 新增内容)

探索 Android Design Support Library v28 新增内容 - 泡在网上的日子

24.很多功能不要想着自己来实现(比如去网上copy一段代码到项目中去),看看有没有开源库?比如轮播图,下拉刷新等等。

直接百度 android开源库大全记得了解android每一个版本的特效,有可能有些功能可以在一个版本上使用在另外一个版本就回出现问题,列一个地址GitHub上排名前100的Android开源库介绍 - brave-sailor - 博客园

25.和产品经理突然加需求怎么沟通?

http://www.jcodecraeer.com/a/anzhuokaifa/2018/0206/9310.html

26.一些开源库(有可能以后的开发中会用到其中的一个控件)(开源中国)

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2018/0126/9244.html

15个优秀的开源项目,让你轻松应对Android开发 - 泡在网上的日子

http://www.jcodecraeer.com/a/anzhuokaifa/2017/1204/8842.html

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2018/0627/10444.html

27.当规定在一行显示文字时候,如果文字略多有要求一行显示完整可以参考:

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2018/0115/9139.html

28.android面试复习app?

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2018/0111/9111.html

郭霖大大开源项目地址

https://github.com/guolindev/giffun

29.android总结篇

30+关于如何成为更好Android开发者的简短而专业的建议 - 泡在网上的日子(这个大力推荐)

2017上半年技术文章集合【Android】—184篇文章分类汇总 - 泡在网上的日子

http://www.jcodecraeer.com/a/anzhuokaifa/2017/1109/8727.html

30.android推荐插件

史上最全的android studio 插件大全整理_hzy670800844的博客-CSDN博客_studio插件包

使Android Studio更高效的几款插件推荐 - 泡在网上的日子

31.在刚开始看app的源码的时候,自己头都大了,从一个一个类文件开始看。到从一个个类的继承关系分析,后面慢慢的打算

     从每一个功能开始看,什么叫每个功能(比如说我需要了解他的网络访问是怎么实现的?我就直接从他第一个网络访问成功的代码开始看,慢慢摸索,不要贪心一下看懂所有。把他们分配成模板块)

32.防止用户多次点击button

Android 防止多次重复点击的三种方法_hust_twj的博客-CSDN博客_android防止多次点击

33.TextWatcher(监测键盘输入并根据输入内容展示不同显示效果)
https://blog.csdn.net/qq_28339011/article/details/80154229

34.TimePickerView(时间选择器)
https://blog.csdn.net/weixin_39738488/article/details/78954606

35.ClipboardManager(复制和粘贴)
https://blog.csdn.net/X550756668/article/details/78894804

当接触一个新的东西的时候,发现很多都看不懂,总想着最优的解决方法,其实一开始就错了,
比如说你刚开始炒股就想马上成为股神可能吗?其中要经历很多,慢慢理解,后面就懂了。
当第一次接触时候就要实现这个东西带来的功能,不必想最优的,先运行成功即可。如果运行
成功了,那么就可以优化了,从自己想的开始。后面再看看大神们写的例子,看觉得那个地方
很厉害很优美,可以借鉴一下加深理解。(记录那些年我踩过的坑2018.10.31)

36.convenientbanner图片轮播开源框架
https://github.com/Bigkoo/Android-ConvenientBanner

37.BGABanner图片轮播开源框架(比上面好些,可以做引导页,也可以做轮播)
https://blog.csdn.net/wangwangli6/article/details/72865402

38.CountDownTimer简单的倒计时实现
https://www.cnblogs.com/SomnusLove/p/4000500.html

39.在使用rxjava的observer的时候,该类会生成4个方法,而有些方法不必要每次都用上,这样导致的结果就是看上去代码多余。有时候我可能只会用到这个类的1个方法,其他3个方法我不想他每次都出现。解决方法还是有的,思路大致和base类(统一管理的父类如:BaseActivity)有关。就是抽象一个方法出来,其他的3个方法都直接在base类里面实现了,后面再用到的地方继承或实例化base类就行了,到时候只会要求实现你的抽象方法。而其他3个自己有特殊需求的时候,也可以重写。可以参考

rxjava2线程调度及Observer的封装_XeonYu的博客-CSDN博客_observer 封装

40.dialog的弹出方式,上弹出,中间弹出,底部弹出

https://github.com/orhanobut/dialogplus

41.乱在as上面装插件(uml类图),导致程序代码乱码,不能运行,解决办法重装as,或者删除c盘里面as的文件

42.在搜索框里面输入内容后在下面添加tag

https://github.com/whilu/AndroidTagView

43.筛选项(PopupWindow)

https://github.com/pinguo-zhouwei/CustomPopwindow(可以在一个控件上方或其他位置显示对话框)

Android新特性之筛选菜单_旺仔哥的博客-CSDN博客_android 筛选菜单

安卓下拉列表样式筛选组件(仿美团,popwindow实现方式)_Imported的博客-CSDN博客_android 筛选组件

Android 多条件筛选简单实现 - 简书

侧栏筛选

Android 商品筛选功能实现_SinPingWu的博客-CSDN博客_android 筛选

44.角标实现

史上最全 Android 应用角标适配方法_孙强 Jimmy的博客-CSDN博客_android 三星角标

45.跑马灯的各种效果实现

Android文字轮播~可垂直可水平跑马灯 - 简书

46.状态布局管理器(没网络页面)

使用时候如果导入依赖不行,就只有导入modul了,下载项目文件找到library目录,拷贝到自己的项目中去即可。

https://github.com/Bakumon/StatusLayoutManager

https://github.com/chenpengfei88/StatusLayout(上面那个好像不能解决刷新)

47.在编写代码的时候如果发现,继承一个类在很多地方都重复了这个继承的操作那就请你想办法把继承的这个类封装好,不然你的代码看上去会显示的很臃肿。举例Recyclerview的Adapter复用

基于Recyclerview的万能适配器封装-结合实际开发项目碰到的诸多问题的总结_王茂波的博客-CSDN博客

48.如果觉得以前写的代码真的很烂,自己花点时间来改改吧,别光说不做---2018-12-29

49.java里面方法的命名很重要,别和系统的一些方法命名重复了,不然可能导致无法解决的问题如:方法无法被正常调用等。---2019.01.03

50.webview中视频无法播放问题解决,一些附加内容

https://www.jianshu.com/p/d6d379e3f41d

android--------WebView 实现缓存网页数据 - 切切歆语 - 博客园

51.加载过渡动画

https://github.com/team-supercharge/ShimmerLayout

52.状态栏颜色改变字体改变--2019.1.28

https://github.com/hexiaochun/SystemBarTint

小米或魅族可能需要适配,参考文章

Android透明状态栏与状态栏文字颜色更改 - 简书

53.汉字转拼音

https://github.com/promeG/TinyPinyin(这个会在重音的时候有问题而只能转换为大写字母,下面地址可以解决。但是执行速度会慢很多)

https://github.com/stuxuhai/jpinyin(可以查看声调,重音字等)--2019.2.13

54.MPAndroidChart详细讲解和封装的文章 19-3.15

Android图表控件MPAndroidChart的简单介绍(MPAndroidChart3.0)_xhu_ww的博客-CSDN博客_mpandroidchart简介

55.git登录账户密码输入错误,不在提示登录框解决

git config --system --unset credential.helper

56.微信支付步骤:

https://www.jianshu.com/p/7b50b7baac12

57.checkbox在recyclerview中的用法

Android Checkbox详解_一叶飘舟的博客-CSDN博客_android checkbox tag

58.recyclerview的对某一个item进行操作

Android-RecyclerView实现Item添加和删除_秦子帅的博客-CSDN博客_android recyclerview

59.如果还不会添加recyclerview的header和footer那可以了解一下NestedScrollView,虽然不推荐使用,但是有时候救急一下还是可以。

Material Design系列教程(5) - NestedScrollView - 简书

60.tablayout、fragment、viewpager结合使用,很好理解

Android:使用TabLayout详解 - 西红柿里没有番茄 - 博客园

61.高德地图通过输入的地址获取经纬度(值得注意的是这里的key是web的key),如图:

地理/逆地理编码-API文档-开发指南-Web服务 API | 高德地图API

62.在使用时间到时间戳的转换的时候,值得注意事项:

java时间戳与Date相互转换、日期格式化、给日期加上指定时长、判断两时间点是否为同一天_饭一碗的博客-CSDN博客_java 日期转时间戳

63.RxPermissions使用入门(运行时权限开源框架)

RxPermissions使用详解 - 简书

64.遇到多个抽象的地方,可以考虑泛型。

 比如:a类进行初始化操作,a类的一部分类容需要拿到c类去实现,而a类还会在b类进行已到实例化操作。如果全部用接口的话,会写两个或者多个接口类。实现方式如:a类实现接口抽象,然后在b类实例化的时候会要求实现接口,然后b类还需接口抽象一个方法供c类使用,b类抽象的作用是将a类抽象的东西带到c类中实现。

如果用泛型的话,就是a类有泛型,b类直接实例化但是不需要进行任何操作,在c类实现的时候,实现泛型接口就行。

65.保存界面为图片

https://www.jianshu.com/p/6193d30e15cb

66.当项目中无法导入依赖的时候,可能是你没有添加这段代码

maven { url 'https://jitpack.io' }

67.图片视频混合选择框架 图片视频压缩的解决方案和思路(git里面的doc文件夹下面),

https://github.com/sucese/phoenix

68.图片动态添加框架

https://github.com/linglongxin24/GridViewAddImage

69.shareSdk,使用微信登录的时候出错,回调方法onComplete只执行方法里面的一部分,一部分不执行。

后面发现是自己使用的mvp,网络请求必须拿到里面来写,可能是异步除了问题。然后就是HashMap返回的

数据是有数据类型的。不然也会导致一部分方法不会执行。

70.android design,你想要的动画效果

Android Design Support Library使用详解(一)_四级五次郎的博客-CSDN博客

Android Design Support Library使用详解(二)_四级五次郎的博客-CSDN博客

71.addView的使用

Android动态添加View之addView的用法 - 简书

72.设计 模式的理解

    代理模式代理模式在Android中的应用_三眼卡夫卡的博客-CSDN博客_android 代理模式使用场景

    原型模式Android中的原型模式 - 简书
73.android ui框架

QMUI 腾讯QMUI Android - 致力于提高项目 UI 开发效率的解决方案

74.相机裁剪开源

Android 系统自带图片裁剪功能(适配7.0、8.0、对了还有小米手机)_码虫韩小呆的博客-CSDN博客_android 系统图片裁剪

75.java爬虫

IBM Developer

抓包 fiddler(有些大公司加密,可能导致抓去不到)

76.android各种优化,面试可能会问到

Android性能优化(一)闪退治理、卡顿优化、耗电优化、APK瘦身_艾阳Blog的博客-CSDN博客_安卓手机性能优化

77.viewpager和NestedScrollView一起使用会出现viewpager里面内容无法显示问题。

78.九宫格图片实现,微信、qq动态

https://github.com/jeasonlzy/NineGridView

79.在使用recyclerview进行多重布局的时候,在编写onBindViewHolder时,每个Bean必须写在对应的下面,不能写在外面。

//值得注意的是这几个bean不能写在外面,不然每条数据只能按照第一条来算(默认一条)如:HeaderBean bean1 = list1.get(realPosition);

80.android录音实现

Android 录音功能直接拿去用 - 简书

81.短视频实现(仿微信)

https://github.com/junerver/VideoRecorder

82.图片视频选择器(仿微信)推荐第二个

Android多图片,视频选择器全是干货值得你收藏!!!_合抱之木,生于毫末,九层之台,起于累土的博客-CSDN博客

83.图片压缩

NativeUtil.compressBitmap(path, file.getAbsolutePath(), 50);

84.最近在导入library到项目中来的时候,导致自己项目报错,和很多文件找不到,总结了以下可能:

     1⃣️。现在的包都是用的androidx,v7和v4相续被淘汰。所以看一下是否是被淘汰的包,如果是然后对其被调用的包进行修改,如果项目中有控件也调用那也别忘记了对xml布局的更改。

     2⃣️。libray的版本最好和项目的使用版本一致,不然也可能造成错误。

85.mp4在线转换gif网址:

Convertio — 文件转换器

86.下载列表进度问题解决:

RecyclerView复用机制浅析:从实现下载列表入手 - 简书

87.接外包

https://blog.csdn.net/xiyue001/article/details/102816596

88.环信使用案例:

https://github.com/lzan13/VMMatch

89.app抓包工具

想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,这里可以为你解决。 - 零度风格 - 博客园

90.富文本编辑器

https://github.com/sendtion/XRichText

https://github.com/Gennki/QRichText

91.当在使用本地ip地址和手机连接的时候,可能会连接不起。(必须在同一局域网下)

这种情况下可以通过ping 手机的地址,如果ping不起,就需要将电脑连接wifi才行。

一般情况下 电脑于电脑之间连接必须都是处于同一状态下成功几率大,比如大家都用wifi或者大家都用网线即可。

ip地址192开头一般为网线连接,ip地址172开头,要保证大家开头都一样才行。

92.当activity和adpater涉及到值的传递的时候,建议用公开的静态方法来传递。比如我只能在activity里面获取的一个值,而在adapter里面恰好会用上,而adpater不能直接获取就只能通过activity里面定义一个静态方法,将值返回给adpater里面就好。如图:

activity中:

adapter中的调用:

如果adapter中的值需要在activity中使用,也是同理。这样适用于大部分场景,不在乎两者之间。

93.android文件下载库

https://github.com/MindorksOpenSource/PRDownloader

推荐一个开源文件下载库PRDownloader_庄宗的博客-CSDN博客_android文件下载开源库

https://github.com/lingochamp/FileDownloader

94.使用anroid studio自带的tablayout时候要注意,外层布局不要更换。不然会导致主题内容不显示。

tablayout外层是个appbarlayout,再外层点就是coordinatorlayout,如果不换成了其他的布局,viewpager就不会显示该显示的内容。

  95.当你苦思冥想想实现一个功能的时候,而刚好这个功能比较复杂,怎么快速实现尼,肯定第一步就是先百度,如果能解决最好,如果不能解决,第二步就在github上搜索,假设我现在需要 标题栏  这个功能,自己就先把 标题栏  转换城英语, toolbar   然后去github上搜索,如果用java写就搜java分支下的,其他的同理。 肯定会有一大堆开源,现在就是改变排序方式,可以按照star排序,选择star多的即可。

96.m3u8下载器

https://github.com/Jay-Goo/M3U8Downloader

97.超级强大的视频播放器

https://github.com/CarGuo/GSYVideoPlayer

98.android清空缓存

android 实现清理缓存功能_代码界的大叔i的博客-CSDN博客_android 清理缓存

99.b类的值(实时)必须拿到a类来使用时的处理方法。
在开发的时候,当a类启动一个方法c,b类会在a类启动方法c的时候返回一个值,但是不能直接去b类拿值,而是要想办法让值出现在a类必须是实时的拿到值。
 这样说 有两种思路一种是通过广播,一种是通过线程+定时器。

线程+定时器的实现方式是:在b类定义一个方法d。当执行a类的方法c,b类的值得到直接返回给方法d,在a类执行方法c过后,通过timer定时器启动间隔一秒的定时刷新,然后在定时器里调用b类的方法d,判断值是否为空,如果不为空,想将值取出,然后结束定时器。

100.遍历一个循环,当满足条件的时候退出,不满足的时候执行其他操作。
  先是一个for循环,假设遍历的数据有  1, 3,5,7.  而我这里有个判断当等于5时退出循环,如果将整个都遍历完了还没有等于5.再执行其他操作。
    实现思路是 先定义一个全局变量a=false。然后再for循环中if(需要满足的条件){a=ture} ,再for循环后面再加一个判断 if(a=false){//执行条件满足的操作。 a=false;}else{//不满足执行的操作。}

101当android studio里面报错,错误报告不在log里面,而是再build里面的时候,查找错误的具体原因: 在terminal中执行以下命令 gradlew processDebugManifest --stacktrace    根据该命令查看具体错误日志

102.android9过后,sd卡内写数据有问题可以看下面文章:

Android 9.0 SD卡写入权限问题_这是一个秘密的博客-CSDN博客_android写入sd卡的权限

103.在没有特殊要求的时候建议 app内需要保存的数据存入 应用内,不然后期适配很麻烦。如下:

通过Context.getExternalFilesDir(String type)方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据   (type传入你需要保存的文件夹如:)


通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据

104:fragment重叠问题解决

fragment重叠的完美解决方案_XeonYu的博客-CSDN博客_fragment重叠

105:Nginx绑定域名。1.安装,然后更改配置文件,然后启动,绑定过后的域名不需要跟配置文件后面的端口,假设文件我设置的是8885,在调用接口绑定过后的地址时不需要这样,端口改是多少还是多少,比如我这里是8080。配置文件参考:

nginx怎么绑定域名-Nginx-PHP中文网

106:flutter json_serializable 的正确使用方法

Flutter 结合json_serializable将json转model - doubletcjs - 博客园

107.一个recycleview实现复杂排版的首页,GridLayoutManager的妙用

这么用GridLayoutManager,你可能还真没尝试过 - 简书

108.fragment存在的坑的解决,包括重叠、getActivity控指针等等

Fragment全解析系列(一):那些年踩过的坑 - 简书

109.下拉图片放大

JMGG的博客_CSDN博客-错误大全,入门,技巧篇领域博主

110.ScrollView嵌套ViewPager自适应高度

ScrollView嵌套ViewPager自适应高度_二货_3050849067的博客-CSDN博客_scrollview viewpager高度

111.一个图标如何快速改变颜色

布局中 android:tint="#fff"可以将图标改成自己想要的颜色

112.viewpager在自定义view中不显示,设置固定高度无效

RecyclerView嵌套ViewPager不显示 - 简书

113.android无限调试  针对android 11

Android 11 无线调试 使用流程 - 简书

114.app搭建本地服务器andServicer

https://www.jianshu.com/p/6d2f324c8f42  

 
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值