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时间戳转为日期格式
转自:http://wyoojune.blog.163.com/blog/static/57093325201131193650725/ 这个在php+mssql(日期类型为datetime)+aja ...
- nav
$(document).ready(function() { $(window).resize(function(){ var need=0; var ul_max_width = $(window) ...
- uboot环境变量分析
uboot的环境变量在程序的运行和调试过程中都发挥着比较重要的作用. 一.环境变量 可以理解为全局变量,但是他的生命周期比全局变量要长,当程序已经结束运行时,全局变量就会消亡,但是环境变量在下次上电运 ...
- you don't have permission 错误
当引入第三方的框架的时候 容易产生以下问题: The file “XXX.app” couldn’t be opened because you don’t have permission to vi ...
- Java中的多线程总结(转)
1.多线程概述 当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程.主要以下几个优点: 线程之间很容易实现共享内存 创建线程代价较小 Java语言内置多线程功能支持 2.线 ...
- pycharm console 控制台乱码的解决
- 【Java】Java6 WebService的发布
WebService服务发布往往比较混乱,Axis2的发布形式与XFire发布方式差别很大,而Java6 Web服务的发布与Axis2.XFire的Web服务的发布方式也有着天壤之别,它们之间没有经验 ...
- Building a Space Station
poj2031:http://poj.org/problem?id=2031 题意:就是给出三维坐标系上的一些球的球心坐标和其半径,搭建通路,使得他们能够相互连通.如果两个球有重叠的部分则算为已连通, ...
- DB2中时间格式化
values to_char(current timestamp - 7 hours,'hh24')||'点' values varchar(hour(current time + 5 hour))| ...
- Timus1132(二次剩余方程求解)
题目:http://acm.timus.ru/problem.aspx?space=1&num=1132 题意:就是给出方程,p为素数,求在区间内的解. 这个思路很简单,详见:http://a ...