安卓开发技巧(1)

安卓开发经验总结

1. android单实例运行方法

我们都知道Android平台没有任务管理器,而内部App维护者一个Activity history stack来实现窗口显示和销毁,对于常规从快捷方式运行来看都是startActivity可能会使用FLAG_ACTIVITY_NEW_TASK标记来打开一个新窗口,比如Launcher,所以考虑单任务的实现方法比较简单,首先Android123纠正下大家一种错误的方法就是直接在androidmanifest.xml的application节点中加入

android:launchMode="singleInstance"这 句,其实这样将不会起到任何作用,Apps内部维护的历史栈作用于Activity,我们必须在activity节点中加入

android:launchMode="singleInstance" 这句才能保证单实例,当然一般均加在主程序启动窗口的Activity。

2. px像素如何转为dip设备独立像素

最 近有网友问如何将px像素转为dip独立设备像素,由于Android的设备分辨率众多,目前主流的为wvga,而很多老的设备为hvga甚至低端的 qvga,对于兼容性来说使用dip无非是比较方便的,由于他和分辨率无关和屏幕的密度大小有关,所以推荐使用。 px= (int) (dip*density+0.5f) //这里android开发网提示大家很多网友获取density(密度)的方法存在问题,从资源中获取的是静态定义的,一般为1.0对于HVGA是正好 的,而对于wvga这样的应该从WindowsManager中获取,WVGA为1.5

这里可以再补充一下dip,sip的知识

3. Android中动态改变ImageView大小

很 多网友可能发现在layout.xml文件中定义了ImageView的绝对大小后,无法动态修改以后的大小显示,其实Android平台在设计UI控件 时考虑到这个问题,为了适应不同的Drawable可以通过在xml的相关ImageView中加入

android:scaleType="fitXY" 这行即可,但因为使用了缩放可能会造成当前UI有所变形。使用的前提是限制ImageView所在的层,可以使用一个内嵌的方法限制显示。

4. 如何判断Android手机当前是否联网?

如 果拟开发一个网络应用的程序,首先考虑是否接入网络,在Android手机中判断是否联网可以通过 ConnectivityManager 类的isAvailable()方法判断,首先获取网络通讯类的实例

ConnectivityManagercwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);,使用

cwjManager.getActiveNetworkInfo().isAvailable(); 来返回是否有效,如果为True则表示当前Android手机已经联网,可能是WiFi或GPRS、HSDPA等等,具体的可以通过 ConnectivityManager 类的getActiveNetworkInfo()方法判断详细的接入方式,需要注意的是有关调用需要加入

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>这个权限,android开发网提醒大家在真机上Market和Browser程序都使用了这个方法,来判断是否继续,同时在一些网络超时的时候也可以检 查下网络连接是否存在,以免浪费手机上的电力资源。

5. Drawable、Bitmap、Canvas和Paint的关系

很 多网友刚刚开始学习Android平台,对于Drawable、Bitmap、Canvas和Paint它们之间的概念不是很清楚,其实它们除了 Drawable外早在Sun的J2ME中就已经出现了,但是在Android平台中,Bitmap、Canvas相关的都有所变化。

首先让我们理解下Android平台中的显示类是View,但是还提供了底层图形类android.graphics,今天所说的这些均为graphics底层图形接口。

Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。

Drawable - 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。

Canvas - 名为画布,我们可以看作是一种处理过程,使用各种方法来管理Bitmap、GL或者Path路径,同时它可以配合Matrix矩阵类给图像做旋转、缩放等操作,同时Canvas类还提供了裁剪、选取等操作。

Paint - 我们可以把它看做一个画图工具,比如画笔、画刷。他管理了每个画图工具的字体、颜色、样式。

如果涉及一些Android游戏开发、显示特效可以通过这些底层图形类来高效实现自己的应用。

6. Activity切换导致的onCreate重复执行

部 分网友会发现Activity在切换到后台或布局从横屏LANDSCAPE切换到PORTRAIT,会重新切换Activity会触发一次 onCreate方法,我们可以在androidmanifest.xml中的activit元素加入这个属性

android:configChanges="orientation|keyboardHidden" 即可,比如

<activity android:name=".android123"

android:configChanges="orientation|keyboardHidden"

android:label="@string/app_name">

同时在Activity的Java文件中重载

onConfigurationChanged(ConfigurationnewConfig)这个方法,这样就不会在布局切换或窗口切换时重载onCreate等方法。代码如下:

@Override

public void onConfigurationChanged(Configuration newConfig) {

super.onConfigurationChanged(newConfig);

if (this.getResources().getConfiguration().orientation== Configuration.ORIENTATION_LANDSCAPE)

{

//land

}

else if (this.getResources().getConfiguration().orientation== Configuration.ORIENTATION_PORTRAIT)

{

//port

}

}

 

第二篇:开发技术部工作总结

年度 工 作 总 结

二〇〇八

跨越了一个个紧张、忙碌而又充实的日子,二〇〇八的脚步渐行渐远,我们终于迎来了崭新的〇九年。在过去的一年中有努力也有松懈,有收获也有遗憾,这个过程让我对工作、对学习、对职业都有了更深入和具体的感知。

一月份公司组建后,在人员不足的情况下开始项目的前期筹划工作。公司人员没有具体分工,公司领导和员工秉承各尽所能、全心全力为公司发展、为项目运作的原则,为办理开发前期的手续做出了最大努力,为项目初步方案的敲定付出了辛勤的劳动。这期间我主要承担了文员、技术员的工作。负责公司内部的文字处理工作,制作、完善公司运作所需的各类表格,收集整理各类技术规范、法律法规、管理办法等,并协助公司领导办理各类开发手续。熟悉了整个开发流程。首次接触、了解了房地产开发前期工作的纷繁庞杂与琐碎,并且深切的体会到前期工作的重要性。与此同时参与规划方案、户型设计的研讨,对方案反复推敲,提出小区整体规划、户型方案意见与建议。根据公司需要对小区规划方案及户型进行纵向分析与配比统计。 随着设计的深入逐步参与到结构优化、设备设计、竖向设计等多个知识盲区,并在自己能力范围内全力配合设计需要,为设计提供第一手基础数据,同时拓展了知识面,提升了自身的综合能力。这一阶段的工作使我获得了最为宝贵的经验,它促使我从全局的角度纵向考虑问题,思想、视觉不仅仅停留在单纯的工程技术层面,而是见习了管理者的

工作方式和方法,从中获益。

随着地勘与拆迁工作的顺利完成,与设计的联系更加紧密,催促、监督设计进度,力保图纸准时到位。同时各类规费的缴纳均已提上日程,与行政职能部门的接触日趋频繁,众多申报表所需大量基础数据的收集、整理与均衡工作越来越繁重。这一过程更多的是一种工作方法的学习,是一种工作方式的适应。把前一阶段的对开发流程的纸上谈兵转变为实际的操作演练与观摩学习,更加深刻的体会到公司领导与管理者对整个公司所作的巨大的无形的付出与努力。也激励着我更为努力、积极的工作、学习。

从7月26号工程奠基仪式后,工程部的工作的重心逐渐转移到施工现场,我在做好资料员的同时,开始进入施工现场,学习施工管理。在资料管理方面:阶段性的整理前期设计文件;理顺、归档前期开发手续所涉及的部分资料;准备施工过程中所需各类表格。现场管理上:最初阶段由于工程部人员不足及自身工作经验等多方面的主客观因素,没有对人员进行明确的分工,在处理好资料的同时,我尽力参与到现场施工的各道工序中,随同事、监理人员一起在现场巡视,积极主动学习,增强业务技能,提高自身业务能力。接手B-1#楼后,在领导的关心与支持支持下,在同事们的鼓励与协助下,我利用平时积累的理论知识和前一段时间的现场学习成果与经验,对B-1#楼进行严格管理,做到以理服人。与监理人员一起及时各施工工序进行验收、复查,在保证质量的前提下,配合施工单位,提高工作效率。通过监理对现场施工质量、安全、文明等各个方面进行有效管理,以期

做到领导放心,自己安心。由于公司人员调整,我的工作做了相应的变动:不再负责资料及B-1#楼土建,接手A-1#楼及即将开工的A-2#楼的土建及安装。调岗后我边熟悉图纸,边结合施工现场情况,查找质量问题。对发现的质量问题,及时向领导回报并请示处理意见,做到不放过一个质量弱点,不错过一个学习机会。同时,广泛涉猎各类专业书籍,摄取多方面的知识,充实理论知识,夯实实战技能。

但是这一年中也有很多的遗憾与不足:对生疏的或者不专业的工作范围不能坚持深入的学习与钻研,满足于浅薄而表面的小小成绩,对于现场管理不是很有魄力,管理技巧欠缺;工作中不能始终坚持努力前行的心态与饱满的工作热情,时常有松懈与放弃,也经常会产生厌烦和急躁情绪,影响工作及工作中和同事的关系……。我要尽力避免和戒除这些弊病,以求在xx年的工作和学习中取得更大的突破,为公司的发展和项目的运作贡献更多的力量,取得公司和个人的双赢!

房地产综合开发有限公司技术科

二〇〇八年x月x日

相关推荐