欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > 安卓开发程序的心得体会

安卓开发程序的心得体会

时间:2020-07-31 07:19

最近在找android开发的工作,总结了有些面试题还是不会,希望大侠挨个解答一下。

谢谢

1 写一个service,application 通过createservice2 运行时一般是根据uid,文件系统权限跟linux一样3 可以,知道class名字 或者知道具体manifest怎么写的4 looper是线程,循环来处理message queue的message,而handler对发送message的相关方法的一个类。

5 binder机制,pipe 不太清楚,socket是通过套接字来发送内容进行ipc,binder的话 是用共享内存,servicemanager作为service的管理者6 surfaceflinger 是对窗口进行管理,7 bionic是glic的精简版本

《Android项目开发实训》项目总结报告新

课程设计小组报告课程名称:软件系统课程设计校内方向:移动互联方向设计名称:xxxxxxxxx系统专业班级:软件1408班学号:2014001684组长姓名:李三组员姓名:李三、李三、李三李三、李三、李三指导教师:孙静宇2017年07月06日 任务书...................................................0太原理工大学课程设计任务书学生姓名|李三|专业班级|软件1408|课程名称|应用软件方向综合课程设计|设计名称|Xxxxx系统|设计周数|2|设计|任务|主要|设计|内容|根据选定题目填写。

例如 1.搭建xxxx环境;| 2.按照….进行分组,选择..设计题目;| 3.开发成绩查询、…等三个功能;|设计要求|根据选定题目填写。

例如|1.开发、设计与运行环境要求:Tomcat7.0、JDK1.7,….等;|2.完成3-5以上功能点;|3.进行模块测试、系统测试、编写设计文档;|主要参考|资 料| 参考书籍及文章:| 作者1,作者2.书名[M].出版社名.出版年| 作者1,作者2..文章标题[J].出版物名称.出版年,卷(期):初始页码-终止页码.|学生提交|归档文件| 项目小组必须提交一份完整的项目技术说明文档(纸质版和电子版),文档内容必须包含《需求分析说明书》、《概要设计说明书》、《详细设计说明书》、《源程序》、《测试计划》、《测试报告》与《项目开发计划》等部分。

每一位同学应提交一份开发日志,详细记录课程设计过程中出现的问题、解

Android应用开发 和游戏开发 在程序上 有什么不同

应用开发与游戏开发最大的区别是,应用开发不需要去了解android中View的绘制过程View的实现等,而游戏中会大量使用View 或者 SurfaceView 人物,精灵都需要用代码去控制以下是游戏开发中的总结:1. 首先应该知道android游戏开发的一些基本框架。

Android游戏开发中首先是View类开发框架。

在Android游戏开发中,任何一个View类都只需要重写onDraw方法来实现界面显示。

游戏的核心是不断的绘图和刷新界面,在 Android中最常用的方法是利用Handler来实现UI线程的更新,也可以直接在run方法中使用postInvalidate()方法在线程中更新界面。

其次,是SurfaceView类开发框架。

2. 游戏开发中常用到的基本类Android游戏开发中通过graphics类来显示2D图形,graphics中包括了Canvas(画布)、Paint(画笔)、Color(颜色)、Bitmap(图片)等常用类。

例如绘制字符串用canvas类的drawText方法来实现,drawRect用来绘制矩形,设置透明度可以用paint类的setAlpha,同时 Color.rgb方法可以直接获得整形数值代表的颜色。

此外在绘制图片时应该首先从资源文件中装载图片,然后才能绘制到屏幕上去。

3. 关于自适应屏幕分辨率的问题Android游戏开发中每款手机分辨率的不同注定是程序员开发游戏必须考虑的问题,怎样才能写一个程序而达到可以在不同分辨率的机子上运行良好,这将是决定一个游戏好坏的重要因素之一。

在游戏资源res下有三个和图片存储有关的文件夹:drawable-hdpi、drawable-mdpi、drawable-ldpi。

4. 如何锁定屏幕是横屏还是竖屏一款游戏通常不会设计成横屏竖屏都可玩,会固定成横屏或竖屏。

Android游戏开发中只需在AndroidManifest.xml里面配置一下就可以了,加入这一行android:screenOrientation=landscape 例如(landscape是横向,portrait是纵向)。

5. view与view之间的跳转Android游戏开发中一个游戏不会只有一个view,比如欢迎动画,游戏画面,菜单页面等等,如何实现它们之间的跳转,这里有一个方法,就是用Handler类实现。

如何快速提高你的android开发水平

一、什么是Android 系统。

——Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源的名称,该平台由操作系统、中间件、用户界面和应用 软件 组成,号称是首个为移动终端打造的真正开放和完整的移动 软件 。

——2008年9月22日,美国运营商T-MobileUSA在纽约正式发布第一款——T-Mobile G1。

该款手机为台*湾宏达电(HTC)代工制造,是世界上第一部使用的手机,支持WCDMA\\\/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。

——Android 是Google开发的基于Linux平台的开源。

它的首款Android手机CLIQ包括操作系统、用户界面和应用程序 —— 工作所需的全部 软件 ,而且不存在任何以往阻碍移动产业创新的专有权障碍。

Google与合作开发了 Android,这个联盟由包括、、高通、宏达电和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。

Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的 软件 平台,在移动产业内形成一个开放式的生态系统。

——它采用了 软件 堆层(software stack,又名 软件 叠层)的架构,主要分为三部分:低层以Linux核心工作为基础,只提供基本功能,其他的应用 软件 则由各公司自行开发,以java作为编写程式的一部分。

另外,为了推广此技术,Google和其它几十个手机公司建立了(Open Handset Alliance)。

比如hero 的UI 界面即由HTC 自行研发,名为Senes,之前,没有一款Android 手机有如此华丽、人性化的界面,由此带来了Android 世界新的界面革命

——与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。

二、HTC、是什么。

——是宏达(HTC)的,是其。

通俗的讲,多普达的东家就是宏达(HTC),负责操作多普达在国内运营。

而HTC 则是台*湾的一家ODM(Original Design Manufacturer,原始设计制造商,自己设计产品,给其它品牌贴牌)厂商。

——宏达(HTC)主要以OEM 为主,给欧美各大运营商做定制手机,原来自己本身的产品不对外销售。

宏达(HTC)旗下拥有多普达和多普达国际两家企业,为了能使自己的家的两个“多普达”都能够在激烈的竞争中生存,HTC 也对它们做了一些强有力的保护措施。

——多普达在武汉的工厂主要以零部件组装为主,机器的主要部件主要是从上家处采购,这里指的上家自然就是宏达(HTC)了,其实从设计到生产,多数是由HTC 来负责。

同时这也解释了为什么我们在一些评测中经常提及HTC,其实HTC XXX就是原厂型号,因为给不同的运营商定制,所以最终到了运营商手上的机器型号命名都是不同的。

——宏达(HTC)是负责设计和生产原型手机,一开始自己并不负责销售,销售全都交给定制的运营商来负责,所以宏达(HTC)的合作伙伴都是各大运营商,自己家负责销售的只有多普达。

当然,现在HTC 也推出了。

所以,关于HTC 和多普达就是水货和行货的说法是不全对的,HTC 现在已经是个向亚太地区之外推广的正宗手机品牌了。

三、APK 是什么。

——APK 是Android Package 的缩写,即Android安装包。

APK 是类似Symbian Sis 或Sisx 的文件格式。

通过将APK 文件直接传到Android 模拟器或Android 手机中执行即可安装。

我们安装APK 一般有这样几种途径: 1、使用电脑上的 91手机助手 for Android 程序,连接手机进行安装,此方法简单明了,只要连接好手机,在你的电脑上双击APK 文件,即可将程序安装在手机上; 2、将APK 文件拷贝入手机的存储卡,在手机上运行安装好的APK 程序安装器,找到拷贝的APK 文件进行安装。

3、直接使用手机在“电子市场”、“ 安卓 市场”上面在线下载安装。

(你在两个市场下载安装过的 软件 ,都在data\\\/app 和 data\\\/app-private 的文件夹里面,把这两个文件夹的文件(apk和zip)都拷贝出来,放一起,用安装有91手机助手的电脑,挨个双击,会显示哪个是哪个,自己可以改好中文名字,下次再装可就不用爬去 安卓 市场和电子市场找了,直接一顿双击,安完。

) 四、什么是ROM,什么是RUU。

——ROM,是用来刷你手机系统的数据文件,也就是Android 系统的封装包,通过手机的工程模式解压安装到手机中形成你手机的操作系统。

官方原版ROM 就是RUU,(相当于原版Windows XP)首先他是一个最安全的升级工具,可以让我们安全的升级ROM (一定要对应的机型)。

当我们在刷机过程中由于不当的操作或版本选择的错误,导致无法启动,可以使用官方的RUU 程序来恢复系统,等于说,这是一个救命道具。

——除了官方的RUU 之外,还能运行很多由高手们自制、定制、优化了的Android 系统,比如安逸、MoDaCo、FLZYUP 这些ROM ,就好像一个Ghost XP 的Ghost 文件,就如同深度、番茄花园、雨木林风等等不同的Ghost XP 系统,直接拷贝在存储卡上,使用手机的Recovery 模式就可以安装。

五、什么是Radio。

——Radio指代的是通讯模块,就是手机里面负责信号部分的模块,PDA类型的手机,基本都强调这么个概念。

一个是PDA,一个是手机(貌似是句废话- -),举个很简单的例子,以三星的PPC手机为例,比如i718.比如i908,他们在刷机的时候(所谓刷机就是重装系统)一般都是分两部分,第一部分刷手机部分,第二部分刷PDA部分,而且两部分基本不相干。

六、我怎么知道我的手机版本。

在手机设置——关于手机,可以查看你的固件、手机操作系统、radio(baseband版本即是)的版本。

根据你的使用情况和你的手机的版本,你可以决定是否对手机进行升级。

七、什么是app2sd。

——Google 手机的 软件 为了安全性和稳定性都是默认安装到手机内存里,但是手机内存有限,所以我们会做app2sd 操作,来让我们安装的 软件 放到sd卡上,而Google 的android 系统是基于Linux 的,所以存储卡上本身的Fat 格式是不会被识别的,所以我们要分区(第二分区)出来,格式成Linux 认识的ext2 或3 或4 格式,在用链接命令,把这个分区映射成一个系统文件夹system\\\/sd(大概这个意思),把所有的 软件 装到这个“文件夹”下,这就是app2sd 的操作。

需要ROM 支持并开启app2sd 功能。

——app2sd 的操作其实是牺牲了一部分 软件 的速度和稳定性来换取更多的手机内存安装更多的 软件 。

另外,app2sd只是把 软件 放到了sd卡上,运行 软件 还是需要占用手机的内存的,所以,你装了 软件 之后,一般手机内存还是会减少一些。

你如果安装的 软件 在70个以内,个人觉得没有必要,呵呵,如果很多游戏 软件 除外。

此外,使用app2sd 最大的好处就是,刷一个带app2sd 的rom 之后,以后升级这个rom(依然带app2sd)的时候,你的 软件 都会完整保存(个别除外,比如htc 无效 chinese需要重新添加几个文件到system\\\/lib下),不过很多ROM 是需要Wipe ext 分区的,也就不能保留了。

——目前来看我们现在所使用的Android 各种 软件 暂时还没有进行app2sd 的必要。

如何学习android开发

我不懂java,但是懂C#和C++,所以我没主张去单独学习java语言,如果你是个最最初的新手,没啥语言基础,那你必须先看看java语言,不要很详细看,因为学习Android中,你也是在学习java。

  1. 明确目标  没有目标的学习,会感觉到后面没什么成果,在1年前,我也打算学习android开发的,但是目的就是学习,到网上去下载很多学习的视频,然后把开发环境搭建起来,能把Helloworld运行起来,能打些log,Activity之间也能互相切换了,但是后面也就不了了之了,因为不知道学了要干什么。

依葫芦画瓢的做了几个例子,因为里面的问题都是已经解决的,所以也没能深入的系统学习。

  这次因为产品的需要,要做Android版本,要做的东西一开始就已经设计好了,见摇摇2选1安卓版本,刚开始也不知道里面有些什么技术难度,但是要做的目标已经明确了,而且也没有现成的,碰到问题就查资料,慢慢地解决,这样有的放矢,学习的效果非常好。

既有现成的技术可以使用,又有些技术,需要查比较多的资料,这样记忆就比较深刻,所掌握的知识也比较系统。

  接下来的一系列文章,我会把在开发摇摇2选1中遇到的问题,给大家详细讲讲,程序虽然小,但是五脏俱全,做Demo和做产品的要求完全不是一个级别,如果Android大牛感觉知识讲的比较浅,那可以绕道,毕竟我是从一个完全的新手开始的。

  2. 了解安卓开发中比较困难的地方  学习一个新平台,就要知道此平台开发要面临的困难有哪些,不要做到最后,这些问题没有考虑,那就比较糟糕了。

在网上搜索了下,安卓开发困难总结如何:  1)安卓系统版本比较多,各版本之间的兼容性是个问题,此为系统碎片。

  2)安卓设备千变万化,设备难以统一,每个产品都成为独立,分散的Android碎片。

  3)分辨率五花八门。

一个产品,可能需要多个界面排版,人工消耗比较大。

    看到这张图,有没有头疼的感觉?  总结成一句话:Android的碎片化真是要来开发者的命。

  3. 搭建开发环境  巧妇难为无米之炊,开发环境肯定是第一件要做的事情,这类的文章已经很多了,我也不多说了,多说也就比较无聊了。

感谢吴秦,也是博客园里的一员,他写的很详细了,见这里。

  4. 查看网友总结的一些经验。

  不是什么都查看,开发中遇到什么问题,就去查看什么问题,这样你查到的知识,马上就能深入的实践,这样知识就巩固了。

  1)首先当然要看Android的开发文档,里面其实大部分的知识都有了,还有就是SDK自带的Samples。

  2)博客园里搜索“Android开发”,会出来一大把,很多网友都是很系统的讲解了。

  3)eoe android社区,里面有很多网友上传了现成的demo代码,里面很多都是模仿现在流行的产品的界面开发,很是不错。

  5. 掌握调试方法  个人一直认为,调试技巧是开发中最重要的技能,如果调试技能比较差,不知道如何查找问题,那不会是个好的程序员,其技能也不会高到哪里去。

  Android做下来,感觉调试这块做的很不错了,这要感谢Eclipse IDE做的比较不错,但是Android的界面排版部分,真的不敢恭维,Eclipse时间用长了,占用内存真是大。

有哪位高手能否告诉我下,你们界面排版是用什么的?  Android里,如果程序出了问题,有些是一下跟踪不到的,这时就要用到Log类了,Log类使用很简单,就不多说了。

  自己一个很有感触的经验,如果你真的打算做Android开发,那就买一个设备,这样能大大提高开发效率,模拟器有时用起来真是麻烦,而且开发的设备不要很好的,只要设备分辨率是主流的,传感器的支持最好全点就够了,国产的手机里,华为的还不错,或者到淘宝上去买个二手的,投资不大。

真的买了投资,可能也会增加你学习Android的决心。

  6. 程序框架  经过10多年的经历,认识到程序的框架对开发产品真的是起到举足轻重的作用。

一个好的产品,如果有个好的程序框架,那真是事半功倍,可能开始所做的工作会比较多,很难看到令人激动的成果,但是相信我,绝对值得。

一开始,我也是比较注重程序界面开发,很快就开发出界面来,而且着实比较激动,因为有东西出来了,但是后面的事情,真是令人发狂,想从头再来,太迟了,离计划的时间比较近了,时间不允许,只有硬着头皮往上打补丁,硬着交付第一个版本,第二个版本或者后面的版本,迟早是要重来的。

所以在后面带领团队开发的时候,在开发前,都是要讨论程序框架,留出很大部分时间进行程序框架开发,及在开发中不断的改进。

  刚接触Android,不知道用什么程序框架,所以查了很多资料,一开始看到一个程序框架,感觉很不错,所以一开始就使用了下面这个程序框架。

    开始这个框架用的蛮爽,简单介绍一下,主UI线程如果要做一个比较长时间的任务,创建一个任务,发送到任务队列中去,后台的Service不断的从任务队列中去取任务,然后交给线程处理,线程处理完后,通过消息(Message)发送到Handler里处理,然后Handler的handleMessage函数里回调到UI主线程中去。

  此框架的缺点是比较麻烦。

  1)首先这里有个Observer模式,每个Activity都要实现一个接口,然后注册到后台服务中去,这样后台服务才能把处理的结果回调到主线程中。

  2) 每个事件都要组成一个任务,发送到任务队列。

  3)后台线程先要取任务,然后处理,然后通过消息切换到主线程,然后又回到到相应的Activity中,中间有个3次判断当前是什么任务。

  4)不能并非,任务只能一个接一个,虽然这个一般不会造成瓶颈。

  因为摇摇2选1应用比较简单,所以后来感觉只要使用线程和Handler,通过消息就能处理,然后就查资料,发现已经有比较多的文章描述了这种方法,只是没提出这是一个框架,但是对摇摇2选1,我感觉已经足够了。

下面就是主代码,分布在每个Activity中:  private void TaskThread()  {  Thread taskThread = new Thread()  {  @Override public void run()  {  \\\/\\\/做耗时的任务  Message msg = Message.obtain();  msg.what = 1;  uiCallback.sendMessage(msg);  }  };  taskThread .start();  }  private Handler uiCallback = new Handler()  {  @Override public void handleMessage(Message msg)  {  if(msg.what == 1)  {  \\\/\\\/在主线程中处理结果  }  }  };  够用就好,至少我现在用着很爽。

  7. 程序国际化  互联网让地球成为一个村,所以一开始也需要了解一下程序是如何做国际化版本的。

不要一开始字符串满天飞,整个程序中都存在hard code,这样做,迟早是要吃亏的。

  8.产品升级机制  一个方便的产品升级机制,对产品的成长很重要,android是一个开放平台,在这点上比iOS做的好的多,产品升级很方便。

  此文章的目的就是对想学Android开发的人一个指引,因为我也就是这么走过来的,加上自己在软件开发上的一些经验,让新手少走弯路。

有计划,有目标的学习,这是最好的方法。

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片