第一篇:学习心得:学习Android开发技巧
学习心得:学习Android开发技巧
曾经有在千锋3G学院学习Android开发的我,现将自己的学习心得分享如下,希望能够给更多有这方面学习的网友提供相关信息。
回想起这几个月的学习,使自己对Android开发系统有了更加系统、更加全面的认识,并且使自己的技术水平有了进一步的提高,能在社会上成为更加有竞争力的人。
在千锋的四个月的学习让我懂得了很多,开始的Java基础讲的很细,讲解的不是很快,这样可以让有基础的更好的复习,也可以让没有基础的更容易接受;之后是Android基础,这个阶段主要是让自己了解Android的各种控件的使用,为以后的项目开发打下基础;第三个阶段是项目开发,这一个阶段是最锻炼人的,可以把学到的东西都联系起来,然后进行更好的应用。最后就是就业阶段,就业部的老师都很认真负责,在我毕业前就让我开始为后面的找工作做准备,简历制作好好后又经过老师的改正,让我的简历更有机会被公司选中,还给我讲了一些面试中遇到的问题该怎么去回答。
经过这四个阶段,我学习到的不仅仅是专业的知识,也让我简单的了解到上班的状态,并深刻的体会到细节决定成功的真谛。
学习可以使我们的人生变得更加美满充实。路是自己走出来的,能否走出属于自己的一片天空,全在于自身的努力与坚持,我相信成功总是会留给那些有准备的人。做出你的选择,尝试走出第一步,成功将不会遥远。
同时还要感谢千锋的老师们,他们在我最迷惘的时候给我一些正确的向导!
第二篇:Android开发工程师学习路线
Android开发工程师学习路线:手机产品开发要从基础开发知识做起
Android开发工程师学习路线图:想要做好手机产品开发要先从基础开发知识做起,要学好基础语言开发,即java语言开发,然后逐步提升自身的产品路线,将制作产品的每一步都进行完整的规划,并且将每一步要实现的功能做好设计。掌握基础开发知识,能够很好地掌握java语言的内涵,然后通过这一语言来实现程序框架中每一步的功能,并且将程序框架中的每一步都进行完善的规划,避免出现这样或那样的问题,在设计程序过程中也要掌握各种各样的算法。
千锋教育是Android培训行业领导者,千锋教育的Android开发基础班是从java开始指导学员学起,掌握了java语言,然后进行整体的产品规划。通过程序来实现产品设计中的每一步作用。很多Android开发人才都在后续工作上引入UI设计思想,把UI理念融入到产品设计中去,并且提升自身的学习模式,通过程序整体实现产品的性能。决定一个好的产品,程序员的学习质量非常重要,只有提升学习质量,把在开发过程中遇到的问题进行解决才是最根本的。千锋教育Android培训课程模块化,指导学员学习完阶段性课程,指导学员完成自己的产品,让学员在开发过程中遇到的问题进行解决。
Android开发学习过程中要掌握好基础知识,特别是java语言的应用,然后逐步提升学员在学习过程中遇到的一些细致化的问题,把一些难点进行解决,在开发过程中把容易出现的一些难点进行合理化控制,避免在程序生成产品后出现问题,从而导致崩溃,这是非常重要的一点。
第三篇:Android学习心得
Android入门心得
工具使用
1.打开已有工程:
方法1:Eclipse>file>new>Android Project>Next>Create Project existing source>选择你的项目.该方法适合不在工作目录workspace下的文件。
方法2:在屏幕上方的选单列上,选择「File->Import」选项,会跳出「Import」视窗。选择「General->Existing Projects into WorkSpace」项目,然后按下「Next」按钮带到新一个画面。在「Select Root Directory」栏位旁,按下右方的「Browse...」按钮,选择对应的工程。选择好后,按下「Finish」按钮完成从现存在工作环境(WorkSpace)资料夹下的工程汇入到Eclipse 环境的动作。
2.修复工程。如果发现开启后的资料夹图示上有个小小的黄色惊叹号,表示工程导入后还有些问题,我们可以使用ADT 内建的功能来试着修复。
在「Package Explorer」的「ApiDemos」工程档桉夹图示上点选右键,Android Tools->Fix Project Properties
3.新建模拟器
一种方法是在windows的运行>cmd中。
在windows的“运行”->cmd中启动Android emulator。
首先,设置环境变量。在Windows 2000,XP,2003 这些操作系统里,点选「我的电脑右键> 属性> 高级> 环境变数」。在「系统变数(S)」栏中,选取「PATH」变数名称后,再点选「编辑(I)」按钮。加入你的android-sdk-windows的安装路径(因个人电脑而异):在弹出的视窗中将「;D:softwareeclipseAndorid开发套件android-sdk-windowstools」(注意要以分号隔开)这字串添在原本的字串之后,按下确定后重新启动操作系统。其次,开始>运行>cmd:输入如下命令
>android list targets 列出模拟器类型
>android create avd--target 1--name android2.2新建模拟器(「--target 1」参数的意思是这个模拟器使用id 为1的模拟器类型,「--name cupcake」参数的意思是将这个建立的模拟器命名为android2.2)
>android list avd 查看已有的模拟器。
另一种简单的方法是在eclipse集成开发平台上。
Eclipse>windows>android SDK and AVD manager>new >„„
4.换屏。在Windows 操作系统上按下「Ctrl」和「F12」可以切换模拟器屏幕,直屏&横屏。
5.换外观。还可以添加android手机的模拟器外观,如G1的。实现方法:先下载G1外观(http:///),解压后放到即可,执行android create avd--target 2--name devphone –skin G1
6.添加SD Card。
首先创建镜像文件。用cmd中进入到android的SDK的Tools目录下,执行mksdcard创建。
>mksdcard 1024M sdcard.img
(其中第一个参数为要创建的sdcard容量大小(容量大小自己决定),第二个参数为sdcard的名字)
然后,启动带sdcard的Android模拟器
>emulator-sdcard sdcard.img
我使用的时候,发现用上述命令总是提示错误。按照cmd的提示,改为emulator –data sdcard.img。不过貌似启动很慢,而且手机内存和sd卡内存(磁盘虚拟)也会调整,开始以为可以了,结果发现死机了。~~~~(>_<)~~~~
最后根据提示,命令中加入模拟器名,emulator –avd [你的模拟器的名
字]-sdcard sdcard.img,就启动了模拟器。(估计是我电脑有多个模拟器,所以命令就不知道怎么执行了)
7.在模拟器上安装android 程序。
Windows>navigation>next perspective>DDMS>选中file explorer 可以看到Android手机模拟的系统文件。有个SDcard的文件夹即为SD卡内容。点选一个手机图标即可将android程序下载到“手机”(通过这种方法,还可以添加图片,MP3等。也可从手机上传到PC,用即可)然后像操作手机一样安装程序即可。你可以试试安装“愤怒的小鸟”“植物大战僵尸”等游戏。在PC上体验android。
说明:如果你的手机模拟器上没有装文件浏览器。是看不到文件的。解决的办法是:可以你先在在cmd中安装浏览器,adb install ***.apk。安装文件必须在cmd的当前目录下,不然cmd找不到的。
8.屏幕截图。在Windows>navigation>next perspective>DDMS>Device窗口中有个Screen capture 图标。点选即可将手机模拟器的屏幕内容截取下来。9.JAVA语法
10.Package:
当一个大型程序交由数个不同的程序人员开发时,用到相同的类名是很有可能的,那么如果发生了这样的事件我们该怎么办那?,在我们java程序开发中为了避免上述事件,提供了一个包的概念(package),那么既然有了这样一种方法能避免上述事件.11.Native。在JAVA中 native关键字表示一个方法只可以调用,但是不能编写!
12.将C写的动态库变成Java所用:
Native方法,native是一个本地接口。
1、在Java中声明native()方法,然后编译;
2、用javah产生一个.h文件;
3、写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);
4、将第三步的.cpp文件编译成动态链接库文件;
5、在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在Java中被访问了。
13.Java关键字final
final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非
抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。final类不能被继承,没有子类,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。final不能用于修饰构造方法只是用来标识这个引用不能被修改。
14.R.java
R.java是ATD自行产生的,ID号都是唯一的,如果不熟悉,最好是不要动这个里面的东西,这个类里面通常定义的都是project的一些resource信息,attr、drawable、id、raw、layout、string以及xml等
15.在Java中,通过关键字extends继承一个已有的类。New创建对象。
16.创建对象是可直接用button,EditText,TextView,Handler等关键字,17.修改程序图标:把res文件夹的drawable文件夹中的icon.Png替换成自己的icon即可。
最后
Android也可以不用JAVA语言,而采用经典的C&C++开发。基于的原理也就是第12点讲到的,将程序的实现代码用C(C++)写好后,封装成库,再使用native方法调用,即JNI,JAVA native interface。(开发环境为DNK Native Development Kit)。
麻烦!还不如新学JAVA,以后肯定用得到的。
Android应用程序开发入门
1.界面
目前的ADT 版本提供了预览界面的功能,但尚未提供方便地视觉化拖拉界面元件的开发工具。以后也许ADT 会加入完整的GUI 拖拉设计工具。所以当前设计都是在res下的layout下的main.xml修改界面描述语言。
2.
第四篇:android 开发心得
即 使你的应用程序是快速且响应灵敏的,但一些设计仍然会给用户造成问题——与其它应用程序或对话框未事先计划的交互,意外的数据丢失,意料之外的阻塞等等。避免这些问题,有助于理解应用程序运行的上下文和系统的交互过程,而这些又正影响着你的应用程序。简而言之,你应该竭尽全力去开发一个与系统和其它应用程 序流畅交互的应用程序。
一 个常见的流畅问题是,一个应用程序的后台处理——例如,一个 Service或者
BroadcastReceiver——弹出一个对话框来响应一些事件。这可能看起来没啥大碍,尤其是你在模拟器上单独地构建和测试你 的应用程序的时候。然而,当你的应用程序运行在真机上时,有可能你的应用程序在没有获得用户焦点时后台处理显示了一个对话框。因此,可能会出现在活跃的应 用程序后方显示了你的应用程序的对话框,或者从当前应用程序夺取焦点显示了一个对话框,而不管当前用户正在做什么(例如,正在打电话)。那种行为,对应用 程序或用户来说,就不应该出现。
为了避免这些问题,你的应用程序应该使用合适的系统资源来通知用户——Notification类。使用Notification,你的应用程序可以在状态栏显示一个 icon来通知用户已经发生的事情,而不是夺取焦点和打断用户。
另 一个流畅问题的例子是未能正确实现Activity的 onPause()和其它生命周期方法而造成意外丢失了状态或用户数据。又或者,如果你的应用程序想暴露数据给其它应用程序使用,你应该通过 ContentProvider来暴露,而不是(举例)通过一个可读的原始文件或数据库来实现。
这 些例子的共同点是它们都应该与系统和其它应用程序协作好。Android系统设计时,就把应用程序看作是一堆松散耦合的组件,而不是一堆黑盒代码。作为开 发者来说,允许我们把整个系统看作是更大的组件集合。这有益于我们可以与其它应用程序进行清晰无缝的集成,因此,作为回报,我们应该更好的设计我们的代 码。
下面将讨论常见的流畅问题以及如何避免它们:
一 定要记住Android是一个移动平台。可以显而易见地说,其它Activity(例如,“Incoming Phone Call”应用程序)可能会在任何时候弹出来遮盖你的Activity,记住这个事实很重要。因为这个过程将触发 onSaveInstanceState()和 onPause()方法,并可能导致你的应用程序
被杀死。
如 果用户在你的应用程序中正在编辑数据时,其它 Activity出现了,这时,你的应用程序被杀死时可能丢失那些数据。当然了,除非你事先保存了正在进行的工作。“Android方式”是这样做的:能 接收和编辑用户输入的 Android应用程序应该重写 onSaveInstanceState()方法,并以恰当的方式保存它们的状态。当用户重新访问应用程序时,她能得到她的数据。进行这种处理方式最经典的例子是 mail应用程序。如果用户正在输入 email,这时其它 Activity启动了,mail应用程序应该把正在编辑的email以草稿的方式保存起来。
如果你不想穿着内衣在大街上溜达的话,你的数据也不应该这样。尽管可能存在暴露应用程序的某种形式给其它应用程序,但这通常不是最好的主意。暴露原始数据,要求其它应用程序能够理解你的数据的格式;如果你变更了格式,那么,你将破坏那些没有进行同步更新的应用程序。
“Android 方式”是创建一个 ContentProvider,以一种清晰的、深思熟虑的和可维护的API方式暴露你的数据给其它应用程序。使用 ContentProvider,就好像是插入Java接口来分离和组装两片高耦合的代码。这意味着你可以修改数据的内部格式,而不用修改由 ContentProvider暴露的接口,这样,也不会影响其它应用程序。
如果用户正在运行一个应用程序(例如,Phone程序),断定对用户操作的目的才是安全的。这也就是为什么必须避免创建Activity,而是直接在当前的 Activity中响应用户的输入。那 就是说,不要在 BroadcastReceiver或在后台运行的 Service中调用 callActivity()。这么做会中断当前运行的应用程序,并导致用户恼怒。也许更糟糕的是,你的 Activity可能成为“按键强盗”,窃取了用户要提供给前一个 Activity的输入。视乎你的应用程序所做的事情,这可能是个坏消息。
不 选择在后台直接创建 Activity UI,取而代之的是,应该使用NotificationManager来设置 Notification。它们会出现在状态栏,并且用户可以在他空闲的时候点击它们,来查看你的应用程序向他显示了什么。(注意,如果你的 Activity已经在前台了,以上将不适用:这时,对于用户的输入,用户期望的是看到下一个 Activity来响应)
如果你的应用程序需要执行一些昂贵或耗时的计算的话,你应该尽可能地将它挪到线程里。这将阻止向用户显示可怕的“Application Not Responding”对话框,如果不这样做,最终的结果会导致你的应用程序完全终止。
一 般情况下,Activity中的所有代码,包括它的 View,都运行在相同的线程里。在这个线程里,还需要处理UI事件。例如,当用户按下一个按键,一个 key-down事件就会添加到 Activity的主线程队列里。事件处理系统需要很快让这个事件出列并得到处理;如果没有,系统数秒后会认为应用程序已经挂起并为用户提供杀死应用程序 的机会。
如果有耗时的代码,内联在Activity上运行也就是运行在事件处理线程里,这在很大程度上阻塞了事件处理。这会延迟输入处理,并导致ANR对话框。为了避免这个,把你的计算移到线程里。
任 何值得使用的应用程序都可能有几个不同的屏幕。当设计UI屏幕时,请一定要使用多个Activity对象实例。依赖于你的开发背景,你可能理解 Activity类似于 Java Applet,它是你应用程序的入口点。然而,那并不精确:Applet子类是一个 Java Applet的单一入口点,而一个Activity应该看作是你的应用程序多个潜在入口点之一。你的“main”Activity和其它之间的唯一不同点 是“main”Activity正巧是在AndroidManifest.xml文件中唯一对“android.intent.action.MAIN”动作感兴趣的Activity。因此,当设计你的应用程序的时候,把你的应用程序看作是Activity对象的 集合。从长远来看,这会使得你的代码更加方便维护。
当 谈到 UI观感时,巧妙地交融非常重要。用户在使用与自己期望相反的 UI的应用程序时,会产生不愉快的感觉。当设计你的 UI时,你应该尽量避免太多自己的主题。相反的,使用同一个主题。你可以重写或扩展你需要的主题部分,但至少在与其它应用程序相同的 UI基础上开始。
不 同的 Android设备可能支持不同的屏幕分辨率。甚至一些可以自己变更分辨率,例如,切换到风景模式。确保你的布局和图片能足够灵活地在不同的设备屏幕上正 常显示。幸运的是,这很容易做到。简而言之,你需要做的是为主要分辨率提供不同版本的作品,然后为不同的尺寸设计你的布局。(例如,避免使用硬编码位置而 使用相对布局。)如果那样做的话,系统会处理剩下的部分,而且你的应用程序在任何设备上都看起来很棒。
Android设备会有多种网络连接选项。所有的都提供数据访问,但之间肯定有更快的。其中,速度最慢的是GPRS,GSM网络的非 3G数据服务。即使具备 3G能力的设备在非3G的网络上也会花费很多的时间,所以,网络很慢仍然是一个长期存在的事实。
这 就是为什么你应该按照最小化的网络访问和带宽来编写你的代码。你不能假设网络是快速的,所以,你应该总是计划它是慢的。如果你的用户碰巧在一个快速的网络 上,那很好——他们的用户体验会提升。你要避免相反的情形:在不同的地点和不同时间,应用程序有时可用,有时慢得令人抓狂,这样的程序可能不会受欢迎。
还 有一个潜在的地方是,如果你正在使用模拟器,那么你很容易受它迷糊,因为模拟器使用电脑的网络连接。这比手机网络快很多,所以,你需要修改模拟器设定来模 拟较低的网络速度。你可以在 Eclipse中做到这点,在启动选项的模拟器设置页里设置或者在启动模拟器时通过命令行选项设置。
Android 可以支持多种外观形状。也就是说,一些Android设备拥有全“QWERTY”键盘,而其它可能会有40键、12键或其它键盘设置。同样的,一些设备可 能有触摸屏,但一些也会没有。当创建你的应用程序的时候,记住这一点。不要假定特定的键盘布局——除非你真的想限定你的应用程序只运行在某些设备上。
如 果移动设备经常插在墙上,那么,它也就不是很“移动”。移动设备是电池供电的,如果我们能让每次充电的电池使用得更持久一些,那么每个人都会更加开心—— 尤其是用户。
其中两大耗电硬件是处理器和无线;这也就是我们为什么要写尽可能少做工作、尽可能少去使用网络的应用程序的重要原因。
如 何让你的应用程序最小化的占用处理器,归根结底还是要写高效代码。为了减少无线的电量消耗,确保对错误条件进行正确的处理,并只获取你要的东西。例如,如 果某一个网络操作失败了,不要不断地进行重试。如果失败了一次,有可能是用户不受欢迎,因此,如果你再以正确的方式操作,有可能还会失败;所有你做的都是 在浪费电池。
用户是相当聪明的:如果你的程序高耗电,他们是一定会发现的。到那个时点,你唯一可以确定的是,你的程序将很快被卸载掉。
第五篇:Android编程开发入门学习经验
Android编程开发入门学习经验
首先说一下,之所以选择android培训,主要有下面几个原因:因为我不是计算机专业,一些计算机语言高级的计算机语言也没学过,只学过c语言,本身想自学,但自学觉得效率太低,自己没有系统的学习方法,考虑到报班学习,有个老师带着,这样效果会好很多,因此决定上个编程培训班学习。
在看了好多家Android编程开发培训机构的官方介绍后,也在论坛上搜索了一些评价,之后和咨询老师进行了一些沟通,同时我还打听到了一些之前毕业学员的一些就业情况。相比同行业的其他培训机构,各方面的反馈都还不错,所以我选择了千锋android培训。四个月android学习过去了,老师给我的印象是非常负责,在课堂上,他们会一一为同学答疑解惑,甚至当看到你带有疑惑的眼神,他们也会问下你有没有不懂的地方, 这一点我很感动。这里的课程安排的很合理,从基础的java,以及培养面向对象的一些细节,白天老师讲课,晚上自习有老师辅导,一直到Android编程开发最后的大项目,课程都安排的很有层次,深入浅出。
在学习android编程的这段时间里,我学到很多之前没有接触到的知识,过得挺充实的。这里的授课老师讲课方式各有特色,但是课后对于我们来说都很亲切。刘老师讲话风趣幽默,让我们在轻松环境中掌握java语言基础,课程中,老师更加注重我们对于代码的积累,并强调实用性,让我们自己在项目中理解,很多老师都知识面很广,亲和力又强,让我们能够在轻松地氛围中更好地融会贯通所学android编程知识。
最后,我想对已经或即将在培训中学习android编程的学弟学妹们说几句,选择一家好的android编程培训机构固然很重要,但是最终还是得靠自己的努力,如果自己不努力,谁都帮不了你,如果,你选择了像我选择的这种一流的机构,那剩下的就好好努力吧。如果当你坚持不下去的时候,那就想想你的梦想,你的家人,你今天的努力,不仅仅是为了你自己。相信自己,你一定能成功。