android基础篇学习心得
android技术中,线程、进程、JNI、IPC和各个小框架结构是基本功。在跟随高焕堂老师的android程序猿到架构师之路系列视频中 学习完基础篇之后,颇有些心得,记录下来。
android开发就是app开发吗?曾听过很多人说android学习很简单,做个app轻松就上手了。我一直觉得不以为然,许多程序员做app开发时,心中大致只有四大组件、各种布局、数据库和一些常用控件。对于各小框架、线程间通信、绑定服务、java与c的对接等基本原理并不清楚,也没必要弄清楚。
最近学校搞了一个实训,要求做一个拼图游戏。面对一些特别的需求,出现一些奇特的bug,另一个同样学android 但是重心放在实现而非原理上的小伙伴觉得压力挺大。在我看来假如他学习过view框架的一些细节,像onDraw() invalidate()、onMeasure()函数这些,就很容易解决了。所以我认为,学习一项技术最好还是要懂原理,成体系零散的知识点看起来很诱人,能在很快时间内做出炫酷的效果。想着反正实现功能就好了嘛,何必纠结那么多。 这样的心态要不得,越零散越容易忘,越要重新学。所谓磨刀不误砍材工,系统的去学、有自己的见解、将知识融会贯通自成一套体系,长期坚持必然能拥有不凡的基本功,也拥有举一反三的能力。就技术而言,我个人觉得还是得挑难学的技术学,因为难所以核心,因为难所以有门槛。只要你坚持住了,将大大提高自己的核心竞争力。一句话总结,学东西重基础、成体系、能攻关,比所谓为了开发效率速成的技术来得有价值。
android开发不仅仅是app开发,整个android体系庞大繁复,其中蕴含了许多匠师精巧的设计,在学习androi的同时多去关注android的设计理念,看看框架的实现思路甚至读读源代码,这对程序员的自身修养和实力都大有进益。
最后,希望自己在架构师的路上不断前行,原各位同道在搞技术的同时多多思考。
android基础篇学习心得的更多相关文章
- 深入理解gradle编译-Android基础篇
深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...
- Linux随笔-鸟哥Linux基础篇学习总结(全)
Linux随笔-鸟哥Linux基础篇学习总结(全) 修改Linux系统语系:LANG-en_US,如果我们想让系统默认的语系变成英文的话我们可以修改系统配置文件:/etc/sysconfig/i18n ...
- 2-STM32+W5500+GPRS物联网开发基础篇-基础篇学习的内容
https://www.cnblogs.com/yangfengwu/p/10936553.html 这次的基础篇为公开篇,将公开所有基础篇的资料和源码 现在说一下基础篇准备公开的内容:(大部分哈,要 ...
- 【转】android的startActivityForResult学习心得
http://blog.csdn.net/yanzi1225627/article/details/7800529 从昨晚到现在终于调试通了一个startActivityForResult的例子,网上 ...
- Python基础篇学习感悟:学如不及,犹恐失之
从2019年3月底开始学习Python,4月12日在CSDN发表第一篇博文,时至今日已有4个月零12天. 4个多月的学习,老猿从一个Python小白成长到今天,可以说对Python这门语言已经略知一二 ...
- Android基础知识学习
IPC (Inter-Process Communication) 意思是: 进程间的通信,是指两个进程之间进行数据交换的过程. Android中如何开启多进程呢? 只需要给四大组件(Activit ...
- Linux基础入门---学习心得
之前一直以为Linux和Windows差不多,但是学习了Linux基础入门之后才发现两种操作系统之间差距非常大. Linux只是在硬件之上的内核和系统调用,就连我们在Windows里习以为常的图形界面 ...
- Android 基础篇(二)
ADB进程 adb指令 adb install xxx.apk adb uninstall 包名 adb devices adb start-server adb kill-server adb sh ...
- Android基础篇(一)
Android体系结构介绍 Android是一个移动开发平台,层次结构:操作系统(OS).中间件(Middle Ware).应用程序(Application) 具体: 操作系统(OS)-->各种 ...
随机推荐
- JS判断是否为一个数组
function isArray(object){ return object && typeof object==='object' && Array == obje ...
- JQuery jsonp使用小记
在一个不支持PHP的主机上,需要对某些页面做访问统计.我的方案是在静态的HTML页面上,用JSONP向能够执行PHP的主机进行跨域请求,从而使用PHP解决这个访问量统计问题. 在服务器端,PHP页面返 ...
- YII 创建后台模块
1,在protected/config/main.php目录下修改如下目录 'modules'=>array( // uncomment the following to enable the ...
- Python爬虫第一步
这只是记录一下自己学习爬虫的过程,可能少了些章法.我使用过的是Python3.x版本,IDE为Pycharm. 这里贴出代码集合,这一份代码也是以防自己以后忘记了什么,方便查阅. import req ...
- windows系统安装ubuntu后,grub中没有windows启动项
我的问题: 安装系统时候,选择grub安装在sdb磁盘 http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=474289&start=15 ...
- 2013 年 —— Facebook 在开源方面的工作介绍
自从 Facebook 的第一行PHP代码,第一句 MySQL 的 INSERT 语句,开源就已经是我们工程哲学中的一个重要的部分. 现在,我们使用.维护并为大量的主要项目做出了贡献——涉及多种领域如 ...
- 董的博客 hadoop
董的博客 https://issues.apache.org/jira/browse/MAPREDUCE 很重要,把MAPREDUCE改为YARN即可 直接下载patch即可 http://horto ...
- nosql db and javascript performance
http://blog.csdn.net/yiqijinbu/article/details/9053467 http://blog.nosqlfan.com/tags/javascript http ...
- Linux共享库两种加载方式简述
Linux共享库两种加载方式简述 动态库技术通常能减少程序的大小,节省空间,提高效率,具有很高的灵活性,对于升级软件版本也更加容易.与静态库不同,动态库里面的函数不是执行程序本身 的一部分,而是 ...
- Ubuntu 12.04 使用Eclipse搭建C/C++编译环境
首先是安装Eclipse,方法有两种: 第一种是通过Ubuntu自带的程序安装功能安装Eclipse,应用程序->Ubtuntu软件中心,搜Eclipse安装即可. 第二 ...