android课件.docx
- 文档编号:3807894
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:16
- 大小:24.27KB
android课件.docx
《android课件.docx》由会员分享,可在线阅读,更多相关《android课件.docx(16页珍藏版)》请在冰豆网上搜索。
android课件
Android开发高级话题
主讲:
侯赢
houyingsoft@
课程说明
为了能让大家开阔视野,最主要的增加知识积累,修炼到其他培训机构不能匹及的程度,特准备如下android知识拔高内容。
这部分内容大多是进入android开发后,有一定的知识积累的前提下,会涉及的部分。
个人认为,求职者可以再简历上写很多
的项目经验,这是从众多简历中脱颖而出的前提,但是对于知识的掌握层次和深度不够的话,项目经验写的过多反而会适得其反,
因为面试官会认为你这个人不诚实,假如你要的待遇为6k,面试官觉得5k合适你,很大可能上由于上述因素,他也不会提供给你
5k的工作。
再有,现在android工作机会虽然比较多,但是已经不是写几个demo就可以找工作的时候了(在一年前,绝对没有问题)。
课程说明
因此,掌握如下知识有一箭n雕的功效:
1.在面试中脱颖而出,在面试中,如果你能说出如下知识点,即使说的不是很深入,面试官也会另眼相看,他绝对不会认为你是
一个初学者。
2.对android开发者的学习方向做一个规划,很多开发者工作一段时间后发现,android其实就是那些东西,那么今后如何增加自己的
功力修为,相信如下的知识会给你一个方向。
3.在开发中减少弯路,在开发过程中,我会遇到很多问题,但是当时由于android中文参考资料很少,并且从事android开发的
programer也屈指可数,很多问题考摸索,以下就是我个人摸索的一些东西,希望对大家有所帮助。
从个人的面试经历来看,很多面试官也不懂下面这些东西,只要你表述的方法得体,面试官会有这样一种感觉——哎呀,等了
这么久(因为android程序员现在需求相当大,很多公司招不到人),你终于来了!
Android屏幕类型
平板适配
androidoom错误及调试工具
android2.2的退出机制
android动画
androidndk开发
aapt工具的使用
cmnet,cmwap
monkey
androidHierarchyView
androidactivity启动模式
admob
Android屏幕类型
WVGAQVGAHVGEXGA只是表示屏幕分辨率只,是个代号和材质没关系。
分辨率对照表:
代号分辨率代号分辨率
QVGA320*240像素WQVGA400*240像素
HVGA320*480像素VGA640*480像素
WVGA800*480像素XGA1024*480像素
Android屏幕类型
QVGA即QuarterVGA。
顾名思义即VGA的四分之一尺寸
HVGA(Half-sizeVGA),即VGA(640*480)的一半
WVGA即WideVGA
WQVGA全称:
WideQuarterVideoGraphicsArray
他们和屏幕大小也没关系,苹果iphone是HVGA320*4803.5英寸而G3(HTChero)也是HVGA320*480屏幕为3.2英寸。
DPI和PPI、density
ppi是图像分辨率的单位,即pixelsperinch
dpi是针对于输出设备而言的,指输出分辨率,dotsperinch
HVGA屏density=160;密度系数1
QVGA屏density=120;
WVGA屏density=240;密度系数1.5
WQVGA屏density=120
density值表示每英寸有多少个显示点,与分辨率是两个概念
不同pdi下对应的drawable资源
当屏幕density=240时使用hdpi标签的资源
当屏幕density=160时,使用mdpi标签的资源
当屏幕density=120时,使用ldpi标签的资源。
不加任何标签的资源是各种分辨率情况下共用的。
例如——drawable-nodpi
Android单位px,in,mm,pt,dp,sp
(5)dp-->Density-independentPixels-anabstractunitthatisbasedonthephysicaldensityofthescreen.Theseunitsarerelativetoa160dpiscreen,soonedpisonepixelona160dpiscreen.Theratioofdp-to-pixelwillchangewiththescreendensity,butnotnecessarilyindirectproportion.Note:
Thecompileracceptsboth"dip"and"dp",though"dp"ismoreconsistentwith"sp".
(6)sp-->Scale-independentPixels-thisislikethedpunit,butitisalsoscaledbytheuser'sfontsizepreference.Itisrecommendyouusethisunitwhenspecifyingfontsizes,sotheywillbeadjustedforboththescreendensityanduser'spreference.
Android屏幕适配的方法
1。
Xml中引用写好的像素值
Android屏幕适配的方法
2。
程序代码中引用数值型value
Android屏幕适配的方法
3。
Javacode中动态计算
LayoutParamsleftParams=chooseDesk_LeftArea_Layout.getLayoutParams();
leftParams.width=leftAreaWidth;
LayoutParamsrightParams=chooseDesk_RightArea_Layout.getLayoutParams();
rightParams.width=rightAreaWidth;
chooseDesk_LeftArea_Layout.invalidate();
chooseDesk_RightArea_Layout.invalidate();
Android屏幕适配的方法
3。
Javacode中动态计算
DisplayMetricsdisplayMetrics=context.getResources()
//.getDisplayMetrics();
DisplayMetricsdisplayMetrics=newDisplayMetrics();
WindowManagerWM=(WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
WM.getDefaultDisplay().getMetrics(displayMetrics);
intscreenWidthPix=displayMetrics.widthPixels;
intscreenHeightPix=displayMetrics.heightPixels;
floatdeviceDensity=displayMetrics.density;
Log.i("deviceInfo",deviceDensity+"");
//deviceWidthHeight[0]=(int)(screenWidthPix*deviceDensity);
//deviceWidthHeight[1]=(int)(screenHeightPix*deviceDensity);
deviceWidthHeight[0]=(int)(screenWidthPix);
deviceWidthHeight[1]=(int)(screenHeightPix);
Android自由开发者的福音——admob
AdMob是移动电话广告市场,可提供用户在移动电话网络上播放广告。
2006年AdMob创建于加州。
移动终端网站(Mobilesite)可选择加入AdMob,并启用AdMob的广告轮播,广告则在AdMob网站中置放。
目前iPhone与Android手机上皆有此功能。
2009年11月9日Google宣布以7亿5千万股份购入AdMob,正式投入行动装置上的广告市场。
Admob覆盖160多个国家,是美国最大的手机广告平台。
Android自由开发者的福音——admob
创建一个admob应用。
1.创建一个应用程序。
2.查看发布者id,下载发布者代码。
3.查看admob的官方demo。
4.配置相应参数。
Android查看内存泄露
对于大型JAVA应用程序来说,再精细的测试也难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下暴露出来,并且很难在测试环境中进行重现。
JVM能够记录下问题发生时系统的部分运行状态,并将其存储在堆转储(HeapDump)文件中,从而为我们分析和诊断问题提供了重要的依据。
Android查看内存泄露
HeapDump内存分析工具——mat
EclipseMemoryAnalyzer(MAT)是著名的跨平台集成开发环境EclipseGalileo版本的33个组成项目中之一,它是一个功能丰富的JAVA堆转储文件分析工具,可以帮助你发现内存漏洞和减少内存消耗。
只需要轻轻点击一下鼠标就可以生成一个专业的分析报告。
和其他内存泄露分析工具相比,MAT的使用非常容易,基本可以实现一键到位,即使是新手也能够很快上手使用。
Android查看内存泄露
MAT的安装(method1)
插件地址http:
//download.eclipse.org/mat/1.0/update-site/
Android查看内存泄露
MAT的安装(method2)
zip包(step1)
Android查看内存泄露
MAT的安装(method2)
zip包(step2)
Android查看内存泄露
MAT的安装(method2)
zip包(step3)
Android查看内存泄露
MAT的安装(method2)
zip包(step4)
Android2.2退出方法
privatevoidrestartMethod(){
((ActivityManager)getSystemService(Context.ACTIVITY_SERVICE)).restartPackage(getPackageName());
}
privatevoidsysExitMethod(){
System.exit(0);
}
privatevoidkillPidMethod(){
android.os.Process.killProcess(android.os.Process.myPid());
}
publicvoidstandardMethod(){
for(inti=0;i Config.activityList.get(i).killMyself(); } } Android动画 关于动画的实现,Android提供了Animation,在AndroidSDK介绍了2种Animation模式: 1.TweenAnimation: 通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画; *alpha渐变透明度动画效果 *scale渐变尺寸伸缩动画效果 *translate画面转换位置移动动画效果 *rotate画面转移旋转动画效果 2.FrameAnimation: 顺序播放事先做好的图像,跟电影类似。 Android动画 透明度动画 xmlversion="1.0"encoding="utf-8"? > android="> android: fromAlpha="0.1" android: toAlpha="1.0" android: duration="3000" /> Android动画 旋转动画 xmlversion="1.0"encoding="utf-8"? > android=" android: interpolator="@android: anim/accelerate_decelerate_interpolator" android: fromDegrees="0" android: toDegrees="+180" android: pivotX="1%" android: pivotY="1%" android: duration Android动画 缩放动画 xmlversion="1.0"encoding="utf-8"? > android=" android: interpolator="@android: anim/accelerate_decelerate_interpolator" android: fromXScale="0.0" android: toXScale="1.4" android: fromYScale="0.0" android: toYScale="1.4" android: pivotX="50%" android: pivotY="50%" android: duration="3000"/> Android动画 平移动画 xmlversion="1.0"encoding="utf-8"? > android=" android: fromXDelta="30%" android: toXDelta="-80" android: fromYDelta="30" android: toYDelta="80%p" android: repeatCount="3" android: duration="1000" /> Android动画 帧动画 android=" android: oneshot="true"> drawable="@drawable/cloud1"android: duration="200"/> drawable="@drawable/cloud2"android: duration="200"/> drawable="@drawable/cloud3"android: duration="200"/> drawable="@drawable/cloud4"android: duration="200"/> drawable="@drawable/cloud5"android: duration="200"/> AndroidNDK开发 NDK全称: Native Development Kit Android SDK采用Java语言发布,把众多的C开发人员排除在第三方应用开发外(注意: 我们所有讨论都是基于“第三方应用开发”,Android系统基于Linux,系统级别的开发肯定是支持C语言的。 )。 NDK的发布,许多人会误以为,类似于Symbian、WM,在Android平台上终于可以使用纯C、C++开发第三方应用了! 其实不然,NDK文档明确说明: it is not a good way。 因为NDK并没有提供各种系统事件处理支持,也没有提供应用程序生命周期维护。 此外,应用程序UI方面的API也没有提供。 至少目前来说,使用纯C、C++开发一个完整应用的条件还不完备。 Google为什么提供NDK开发接口 使用NDK,我们可以将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。 使用NDK,我们可以将需要保密的应用逻辑使用C开发。 毕竟,Java包都是可以反编译的 许多人都熟悉c语言,为了让android平台更好的发展,Google不可能排除这部分人员。 AndroidNDK开发 Cygwin简介 cygwin是一个在windows平台上运行的linux模拟环境,是cygnussolutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos(embeddedConfigurationoperatingsystem))。 它对于学习unix/linux操作环境,或者从linux到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。 随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。 AndroidNDK开发 cygwin安装 1首先到此链接下载setup.exe AndroidNDK开发 2双击此图标 AndroidNDK开发 3选择安装方式 AndroidNDK开发 4选择安装路径 AndroidNDK开发 5选择文件存储路径 AndroidNDK开发 6选择下载方式 AndroidNDK开发 7选择镜像下载点 AndroidNDK开发 7选择镜像下载点 AndroidNDK开发 8添加本地镜像下载点 AndroidNDK开发 8选中要安装的开发包 只要将gcc、make开发工具选上即可 AndroidNDK开发 AndroidNDK开发 AndroidNDK开发 输入make–v和gcc–v命令查看cygwin是否安装成功 AndroidNDK开发 ①首先到官网下载AndroidNDKr5windows ②android-ndk-r5直接解压就行了,例如E: \Android_NDK ③在home\<用户名>\.bash_profile文件中最后添加环境变量: 打开cygwin根目录\etc\skel目录,找到.bash_profile文件,拷贝到home\<用户名>\(例如cygwin根目录\home\Administrator)下面,在最后添加环境变量 NDK=/cygdrive/ exportNDK(其中“NDK”这个名字是任意取的) 例如: NDK=/cygdrive/E/Android_NDK/android-ndk-r5 exportNDK AndroidNDK开发 1.尝试编译并运行hello-jni AndroidNDK开发 1.尝试编译并运行hello-jni 步骤 cd$NDK cdsamples cdhello-jni cdjni $NDK/ndk-build AndroidNDK开发 2.AndroidNDKdemo 步骤 1.建立一个Android工程 2.定义本地接口方法和加载本地库的静态代码块。 publicnativeStringstringFromJNI(); static{ System.loadLibrary("AndroidNDK"); } 3.编译头文件 javah–jnicn.itcast.ndktest.MainActivity 得到相应的头文件cn_itcast_ndktest_MainActivity.h 4.编写相应的nativec代码 #include #include jstring Java_cn_itcast_ndktest_MainActivity_stringFromJNI(JNIEnv*env, jobjectthiz) { return(*env)->NewStringUTF(env,"HellofromJNI! "); } AndroidNDK开发 2.AndroidNDKdemo 步骤 5.在工程目录中建立jni文件夹,将本地code文件放入此文件夹内 6.CopyANDROID.MK文件到此目录中,并对文件作如下修改 LOCAL_MODULE: =工程名 LOCAL_SRC_FILES: =.c的文件名(包含扩展名) 例如: LOCAL_MODULE: =AndroidNDK LOCAL_SRC_FILES: =cn_itcast_ndktest_MainActivity.c 7.用cygwin编译,重新导入工程,运行。 中移动历史遗留产物cmnetcmwap 1.中国特色产物 2.为什么有cmnet和cmwap? (历史原因) 方便计费 网间结算 用户安全 3.cmwap地址及原理 4.cmwap现状和未来 5.为什么要讲解cmwap 中移动历史遗留产物cmnetcmwap 1、cmwap的特点 cmwap接入方式的限制很多,cmwap接入方式只开放80,8080,9201端口,。 仅支持http和wap协议。 。 对于一般的用手机浏览网页,cmwap不会出现任何问题,因为这些网页都是基于http协议的。 2、cmnet的特点 cmnet就像我们使用电脑连接互联网,除了伟大的墙,,你用移动设备连接互联网不会有任何限制。 中移动历史遗留产物cmnetcmwap 如何通过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 课件