题外话
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。
【Android思维脑图(技能树)】
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
它可以把多个item合并成一个组
<menu……/>元素
可以创建子菜单,是在具体的item下面
这么看肯定不明白,举个例子,我们要创建如下样式的菜单:
菜单一共有三个选项,分别是字体大小,普通菜单选项,字体颜色,字体大小和字颜色下面分别有10号字16号字20号字和红色黑色。总结就是这个 menu大菜单下面有三个item,第二个就是一个简单的item下面什么都没有了,第一个和第三个下面都有一个group,group下有具体的item选项。
<?xml version="1.0" encoding="utf-8"?><item
android:title=“@string/font_size”
<item
android:id=“@+id/font_10”
android:title=“@string/font10”/>
<item
android:id=“@+id/font_16”
android:title=“@string/font16”/>
<item
android:id=“@+id/font_20”
android:title=“@string/font20”/>
<item
android:id=“@+id/plain_item”
android:title=“@string/plain_item”/>
<item
android:title=“@string/font_color”
<item
android:id=“@+id/red_font”
android:title=“@string/red_title” />
<item
android:title=“@string/black_title”
android:id=“@+id/black_font”/>
这样我们就写好了一个菜单,接下来我们需要在MainActivity中使用它,重写onCreateOptionsMenu方法,在这些方法中调用MenuInflater对象的inflate方法加载指定资源对应的菜单文件。
//在JAVA文件中对资源文件进行加载
public boolean onCreateOptionsMenu(Menu menu)//开发选项菜单重写的方法
{
MenuInflater inflater = new MenuInflater(this);//菜单动态加载类
inflater.inflate(R.menu.menu_main,menu);//调用inflate方法解析菜单文件
super.onCreateOptionsMenu(menu);
return true;
}
这时候菜单已经实现了大部分,要是希望程序能相应菜单项的单击事件,我们重写onOptionsItemSelected(MenuItem mi)方法就可以了。
public boolean onOptionsItemSelected(MenuItem mi){
switch (mi.getItemId()){
case R.id.font_10:
txt.setTextSize(20);
break;
case R.id.font_16:
txt.setTextSize(32);
break;
case R.id.font_20:
txt.setTextSize(40);
break;
case R.id.red_font:
txt.setTextColor(Color.RED);
break;
case R.id.black_font:
txt.setTextColor(Color.BLACK);
break;
case R.id.plain_item:
Toast toast =Toast.makeText(MainActivity.this,“这是普通单击项”,Toast.LENGTH_SHORT);
toast.show();
break;
}
最后说一下我的学习路线
其实很简单就下面这张图,含概了Android所有需要学的知识点,一共8大板块:
- 架构师筑基必备技能
- Android框架体系架构(高级UI+FrameWork源码)
- 360°Androidapp全方位性能调优
- 设计思想解读开源框架
- NDK模块开发
- 移动架构师专题项目实战环节
- 移动架构师不可不学习微信小程序
- 混合开发的flutter
Android学习的资料
我呢,把上面八大板块的分支都系统的做了一份学习系统的资料和视频,大概就下面这些,我就不全部写出来了,不然太长了影响大家的阅读。
330页PDF Android学习核心笔记(内含上面8大板块)
Android学习的系统对应视频
总结
我希望通过我自己的学习方法来帮助大家去提升技术:
-
1、多看书、看源码和做项目,平时多种总结
-
2、不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理
-
3、同时对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习
-
4、android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!
希望大家多多点赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!