果冻消消乐39关怎么过136关怎么过

手浮过渡戒了,再手浮为什么,射出来的精子是果冻状的,请问戒了会好起来吗?_百度知道
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
手浮过渡戒了,再手浮为什么,射出来的精子是果冻状的,请问戒了会好起来吗?
我有更好的答案
这个正常,时间长了没有排泄会这样,颜色还会黄
果冻状才是正常的
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包我是销售代理机构
吉屋网月覆盖3000万购房人群,中文房产网站排名第4。
吉屋网月覆盖3000万购房人群,当前合作新盘超过2000个。
我是公寓运营商
发布房源,更快找到租客。
吉屋网月覆盖3000万购房人群,更快更准推广合作业务。果冻《使命召唤12 黑色行动3》老兵难度绝望攻略 第二战:新世界英雄联盟-在线观看-风行网
全部标记为已读
您暂未收到新消息哦~
安装PC客户端
把想看的剧下载到本地吧~
点击立即下载就可以下载当前视频了哦~
我来说两句
播放:1,020
播放:5,121
播放:14,492
播放:6,308
播放:8,780
播放:15,046
播放:6,050
播放:300,792
播放:3,997
播放:2,335
播放:2,232
播放:21,635
播放:81,178
精选视频号
播放:2,272
播放:2,5627169人阅读
Android常用的技术(50)
& & & & & & IT行业的精英们,请允许我发表一下自己的看法:我们选择了这个行业,正是因为我们的信仰在此,我们的目标在此,无论如何,我们都要保持自己当初的意志,保持自己当初的气场,保持自己当初的信心,我们同是用着一行代码想要改变世界的有理想有追求的非凡之人,在我们的世界里没有放弃,没有妥协,没有一切所谓的消极因素。我们要有自己的气场,有自己的风范,我们是所向披靡的猛虎,在学会照顾自己的同时,我们不要忘了照顾自己身边的人。如果可以,我想去交往所有IT行业的人士,我觉得每个都会有自己与众不同的经历和想法,因为我们不应该只是自己一个人在那里执着,我们是一个巨大的团队。
& & & & & & 其实,我们都是一个干劲十足的追求者,我们有着自己的梦想!我觉得我们都是一样的,Android的技术都是借鉴前人的基础发展而来的,我们要学会借鉴CSDN中大牛的精髓,丰富自己的知识,让自己走的更远、更高!
& & & & & &下面我们来看看面试宝典2:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & I.&Android行业背景
Android是一个基于Linux的移动设备(智能手机和平板电脑)操作系统。它由Google所领导的开放手持设备联盟所开发。2005年,Google收购了Android操作系统的最初开发商Android股份有限公司。2007年,随着Android操作系统的对外公布,一个由86家硬件、软件以及通信公司联合,致力于推出移动设备开放标准的组织——开放手持设备联盟,宣布成立。Google将Android代码作为开源项目,在Apache许可下发布。Android开源项目(AOSP)以Android的维护和更进一步的开发为使命成立。Android拥有一个巨大的开发者社区,开发出拓展设备功能的各种应用程序(简称应用)。开发所使用的语言是一个定制的Java。应用可从三方网站或在线商店如由Google运营的电子市场下载。到2011年十月为止,Android可用应用突破40万个;2011年12月为止,电子市场估计应用下载量已逾100亿。2010年第四季度,Android被市场咨询公司Canalys列为全世界最畅销智能手机平台,设备的使用量超过2亿。据前Android股份有限公司CEO和合作建立者、现Google员工Andy
Rubin所称,到2011年12月为止,每天诞生出的Android设备超过70万部。
II.&Android的特性:
&&&&应用框架,实现了组合的重用与替换
&&&&Dalvik虚拟机,专为移动设备优化
&&&&集成的浏览器,基于开源的WebKit引擎
&&&&优化的图形,由一个定制的2D图形库驱动,3D图形基于OpenGL ES
1.0规范(硬件加速可选)
&&&&媒体支持,支持常用音频、视频以及图像格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
&&&&GSM通话(依赖硬件)
&&&&蓝牙,EDGE(增强型数据速率GSM演进技术),3G,以及Wifi(依赖硬件)
&&&&相机,GPS,指南针,加速计(依赖硬件)
&&&&丰富的开发环境,包括一个设备模拟器,测试工具,内存和性能分析,以及用于Eclipse
IDE的一个插件
&&&&Android架构:
&&&&应用层(包括由系统默认提供了桌面、联系人、通话、浏览器等基础应用,以及由广大开发人员开发、可下载安装的拓展应用。拓展应用访问下层应用框架层方面,和由厂商提供的基础应用一样,没有任何尊卑之别。)
&&&&应用框架层(应用开发基本的API,提供包管理、通话管理、资源管理、位置管理、通知管理、Activity管理,窗口管理、内容提供设施、视力系统。)
&&&&库(用C/C++写成。提供SGL底层2D绘图引擎,安全套接层,嵌入式标准C库,OpenGL
3D绘图,FreeType字体,浏览器核心,用户空间显示管理,媒体框架,以及轻量级SQLite关系型数据库。)
&&&&运行环境(与JRE极其相似。核心包包含了在Java开发中常用的类库如IO、Utility等;
Dalvik虚拟机类似JVM,同样也是专为Android定制,针对手持设备,在存储、计算以及功耗等方面作了格外优化。)
&&&&Linux 内核(Android整个操作系统基于Linux内核,内核提供显示、照相、闪存、软键盘、Wifi、音频等驱动程序,提供对进程间通信机制Binder的驱动,提供电源管理服务。)
Android是用于移动设备上的一个包含一操作系统,一系列中间件,以及部分关键应用软件栈。Android SDK网站提供了在Android平台上使用Java编程语言开发应用程序所必须的工具和API。
国内的Android开发还是主要以应用开发为主,主要分成3类:为企业开发应用、开发通用应用(放到AndroidMarket或者其他AppMarket销售)以及游戏开发(放到AndroidMarket或者其他AppMarket销售)。第一类开发者一般身处规模较大的公司,这些公司主要为自有品牌,或者其他品牌设计手机或者平板电脑的总体方案。除了根据需求对系统进行定制外,更多的工作在于为这些系统编写定制的应用。第二类开发
者,一般处于创业型公司或者是独立开发者,他们的盈利方式主要是2种:为国外公司进行外包开发,或者通过Google的移动广告(AdMob)通过广告点
击分成。而理论上的通过付费下载的形式来盈利的,现在国内鲜见成功者。第三类开发者,目前和第二类开发者类似。
III.&Android的发展历史
Android1.1
2008 年9月发布的Android第一版
Android1.5&
Cupcake (纸杯蛋糕)
日,官方1.5版本(Cupcake 纸杯蛋糕)的Android发布。
主要的更新如下:&
1、拍摄/播放影片,并支持上传到Youtube&
2、支持立体声蓝牙耳机,同时改善自动配对性能&
3、最新的采用WebKit技术的浏览器,支持复制/贴上和页面中搜索&
4、GPS性能大大提高&
5、提供屏幕虚拟键盘&
6、主屏幕增加音乐播放器和相框widgets&
7、应用程序自动随着手机旋转&
8、短信、Gmail、日暦,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件&
9、相机启动速度加快,拍摄图片可以直接上传到Picasa&
10、来电照片显示
Android1.6&
Donut (甜甜圈)
日,1.6(Donut 甜甜圈)版本软件开发工具包发布。
主要的更新如下:&
1、重新设计的Android Market手势&
2、支持支持CDMA网络&
3、文字转语音系统(Text-to-Speech)&
4、快速搜索框&
5、全新的拍照接口&
6、查看应用程序耗电&
7、支持虚拟私人网络(VPN)&
8、支持更多的屏幕分辨率。&
9、支持OpenCore2媒体引擎&
10、新增面向视觉或听觉困难人群的易用性插件
Android2.0/2.0.1/2.1&
Eclair (松饼)
日,2.0(Eclair 松饼)版本软件开发工具包发布。
主要的更新如下:&
1、优化硬件速度&
2、 &Car Home&程序&
3、支持更多的屏幕分辨率&
4、改良的用户界面&
5、新的浏览器的用户接口和支持HTML5&
6、新的联系人名单&
7、更好的白色/黑色背景比率&
8、改进Google Maps3.1.2&
9、支持Microsoft Exchange&
10、支持内置相机闪光灯&
11、支持数码变焦&
12、改进的虚拟键盘&
13、支持蓝牙2.1&
14、支持动态桌面的设计
Android2.2/2.2.1
Froyo(冻酸奶)
日,2.2(Froyo 冻酸奶)版本软件开发工具包发布。
主要的更新如下:
1、整体性能大幅度的提升
2、3G网络共享功能。
3、Flash的支持。
4、App2sd功能。
5、全新的软件商店。
6、更多的Web应用API接口的开发。
Android2.3
Gingerbread (姜饼)
日, 3.0(Honeycomb 蜂巢)版本
主要更新如下:
1、优化针对平板
2、全新设计的UI增强网页浏览功能
3、·n-app purchases功能
Android3.1
Honeycomb (蜂巢)
日在Google I/O开发者大会宣布发布,版本
主要更新如下:
1、Honeycomb 蜂巢(改进3.0BUG)
2、经过优化的Gmail电子邮箱;
3、全面支持GoogleMaps
4、将Android手机系统跟平板系统再次合并从而方便开发者。
5、任务管理器可滚动,支持USB 输入设备(键盘、鼠标等)。
6、支持 Google TV、可以支持XBOX 360无线手柄
7、widget支持的变化,能更加容易的定制屏幕widget插件。
Android3.2
Honeycomb (蜂巢)
日发布,版本更新如下:
1、支持7英寸设备
2、引入了应用显示缩放功能
Android4.0
Ice Cream “冰激凌三明治”
日 在香港发布,4.0(Ice Cream Sandwich 冰激凌三明治)版本
主要更新如下:
1、蓝色主题
2、接近于桌面版的Chrome Lite浏览器,有离线阅读,同步Chrome书签,新的标签样式等。
3、截图功能
4、更强大的图片编辑功能
5、自带照片应用堪比Instagram,可以加滤镜、加相框,进行360度全景拍摄,照片还能根据地点来排序
6、Gmail加入手势、离线搜索功能,UI更强大。
7、新功能People:以联系人照片为核心,界面偏重滑动而非点击,集成了Twitter、Linkedin、Google+等通讯工具。有望支持用户自定义添加第三方服务。
8、新增流量管理工具,可具体查看每个应用产生的流量。
9、正在运行的程序可以像电脑一样的互相切换
10、人脸识别功能
11、系统优化、速度更快
12、支持虚拟按键,手机可以不再拥有任何按键
13、专为3D优化的驱动
14、平板电脑和智能手机通用
Android 4.1&Jelly Bean(果冻豆)
于北京时间日00:30在Google I/O 2012开发者大会上发布
1.更快、更流畅、更灵敏
2.增强通知栏
3.全新搜索
4.桌面插件自动调整大小
5.加强无障碍操作
6.语言和输入法扩展
7.新的输入类型和功能
8.新的连接类型
9.新的媒体功能
10.浏览器增强
11.Google服务
Android 4.2&Jelly Bean(果冻豆)
Android 4.2是谷歌新一代移动操作系统,它沿用了4.1版“果冻豆”(Jelly Bean)这一名称,与Android 4.1相似性很高,但仍在细节之后做了一些改进与升级,比较重要的包括:Photo Sphere全景拍照;键盘手势输入;Miracast无线显示共享;手势放大缩小屏幕,以及为盲人用户设计的语音输出和手势模式导航功能等。尤其令人关注的是,谷歌在Android 4.2中新加入了新的恶意软件扫描功能。
1、完整的Chrome浏览器
2、全新的手机风景模式
3、全新的文件管理器
4、文本输入选项的改进
5、一个明确的升级方法
6、Android Key Lime Pie精简版
7、具有开关切换的用户界面
8、全新的电源管理系统
9、更为轻便的主题模式
10、全新的锁屏页面
11、全新的时钟界面
Android 4.3&Jelly Bean(果冻豆)
北京时间日凌晨,谷歌在美国旧金山的新品发布会上,发布了在安卓4.2版本基础上的升级版本Android 4.3
1、用户账户配制
2、拨号盘联系人自动补全
3、OpenGL 3.0
4、蓝牙低耗电技术
5、WIFI关闭后保持位置功能
新的相机应用UI
新的开发者工具
通过邮件分享截屏时,日期和时间会自动加入进去。
Android 4.4 KitKat(奇巧)
Android 4.4,是由Google公司制作和研发的代号为KitKat的手机操作系统,于北京时间日凌晨对外公布了该Android新版本的名称,为Android 4.4(代号 KitKat 奇巧)。
1、优化了RenderScript计算和图像显示,取代OpenCL
2、支持两种编译模式
3、Android 4.4 KitKat针对RAM占用进行了优化,甚至可以在一些仅有512MB RAM的老款手机上流畅运行。
4、新图标、锁屏、启动动画和配色方案
5、新的拨号和智能来电显示
6、加强主动式语音功能
7、集成Hangouts IM软件
8、全屏模式
9、支持Emoji键盘
10、轻松访问在线存储
11、无线打印
12、屏幕录像功能
13、内置字幕管理功能
14、计步器应用
15、低功耗音频和定位模式
16、新的接触式支付系统
17、新的蓝牙配置文件和红外兼容性
Android 5.0
Android L即Android5.0是最新一代的Android操作系统,代号L。北京时间日0时,谷歌I/O 2014开发者大会将在旧金山正式召开。
全新Android l系统从图片上就能看到一些全新的功能。从图片上看,这套概念设计图对Android系统的桌面图标及部件的透明度进行的稍稍的调整,并且各种桌面小部件也可以重叠摆放。虽然调整桌面部件透明度对Android系统来说并不算什么新鲜的功能,但是加入了透明度的改进,除了整体的色调更加清新之外。
1、谷歌将为Android的语音服务Google Now加入一个名为OK Google Everywhere的全新功能。
2、Android 5.0可能还会加入更多的健身功能,考虑到谷歌在发布了Android Wear,后者与智能手表及谷歌眼镜等可穿戴设备的协作应该会成为下个版本的重点功能。
3、整合碎片化
4、传言Google将在Android5.0中,禁止厂商进行深度定制。
5、数据迁移
6、独立平板
7、功能按键
8、接口风格
人资问题大全
1.请你自我介绍一下自己?
你的介绍与你面试的职位的关系有多大,薪资将会有多高,成功的机会将有多大。
企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深的知识领域、个性中最积极的部分、做过的是成功的项目、主要的成就等。说的要求合情合理,并且有礼貌。
2.你觉得你个性上最大的优点是什么?
你的介绍与你面试的职位的关系有多大,薪资将会有多高,成功的机会将有多大;
沉着冷静、条理清楚、立场坚定、顽强向上、乐于助人、知应能力强,并且有一定的项目实战能力。
3.你最大的缺点是什么?
缺点与你面试的职位的不能有任何关系,更不能影响到你接下来的工作;
不能让人听说来虚假、做着。
比如:性格内向、社会阅历尚浅等。
4.你对加班的看法是什么?
这个行业加班是很正常的事情。
如果是工作需要我会义不容辞加班,我现在单身,没有任何家庭负担,可以全身心投入工作。同时,我也会提高工作效率,减少不必要的加班。
5.你对薪资的要求是多少?
谈薪资范围,用人单位一般用低原则;
如果要求太低,显然贬低自己的能力;如果要求太高,显得你分量过重,公司受用不起。
可以尝试说上一家公司的薪资。
可以说最低不低于多少。
试用期、转正薪资要问清楚。
工资构成也要问清楚。(特别是年薪的工资结构)
6.在五年的时间内,你的职业规划是什么?
希望结合公司的发展战略,调整自己的发展规划,既能满足企业的进一步发展,同时给 自己一个提升的机会。
7.你朋友对你的评价怎样?
我的朋友都说我是一人可以信赖的人,因为,我一旦答应别人的事情,就一定会努力去做。
我觉得我是一个比较随和的人,与不同的人都要以友好相处。在我与人相处时,我总是能在别人的角度考虑问题。
8.你还有什么问题要问的吗?
此问后,不能没有问题跟上;
通过此问试探出面试成功与否:
您看我办理入职时需要带些什么资料?
您看我何时过来办理入职合适?
通过此问让对方觉得你条理清楚、工作严谨、上进心强:
您看,如果我过来,是否会有相关的人带一带,让我尽快熟悉公司文化、制度及工作内容?
9.如果面试录用了你,一段时间后发现你不适合这个职位,你怎么办?
我通过我的努力虚心学习,虚心请教,尽快适应,尽量不给您这个机会。
如果实在不适合,我不会让您为难,也不给公司增添任何麻烦。
10.工作时,你认为领导要求的方式不是最好的,你应该怎么做?
原则上我会尊重和服从领导的工作安排,同时私底下找机会请教的口吻,婉转地表达自 己的想法,看看领导是否能改变想法。
如果领导没有采纳我的建议,我也同样会按领导要求认真地去完成这项工作。
11.如果你的工作出现失误,给本公司造成经济损失,你认为该怎么办?
要敢于负责,并从中找到减少损失的方法。
我本意是为公司努力工作,如果造成经济损失,我认为首要的问题想方设法去弥补或挽回经济损失。
分清责任,各负其责,如果是我的责任,我甘愿受罚。
如果是一个我负责的团队成员失误,我也难辞其究,并帮助其找到原因,找到解决问题的办法。
12.如果你做的工作受到上级领导的表扬,但你的主管说是他做的,你怎样?
正确归因:没有领导的正确指导与大力支持,自己是不要能做好的。
其实谁做好工作并不重要,重要的是对公司有利就行。
13.谈谈你对跳槽的看法?
正常的跳槽能促进人才合理流动,应该支持。
频繁跳槽对单位和个人双方都不利,应该反对。
企业可以通过给员工构建愿景、铺设事业、强化情感减少跳槽现象。员工可以挖掘岗 位价值,总结跳槽利弊减少跳槽现象。
14.工作中你难以和同事、上司相处,你该怎么办?
我会服从领导的指挥,配合同事的工作;我会从自身找原因,仔细分析是不是自己工作 做得不好让领导不满意,同事看不惯。还要看看是不是为人处事方面做得不好,如果是 这样的话我会努力改正。
如果我找不到原因,我会找机会跟他们沟通,请他们指出我的不足,有问题就及时改正。
作为优秀的员工,应该时刻以大局为重,即使在一段时间内,领导和同事对我不理解, 我也会做好本职工作,虚心向他们学习。
15.假设你工作做的很好,得到领导肯定,但同事孤立你,你怎么看这个问题?
工作做的好,成绩突出,肯定是好事,以后更加努力。
同事孤立,需要检讨一下自己是不是没有能正确认识成绩,任何成绩的取得绝非个 人 之功,取得成绩时,应该学会向外归因,遇到问题时,应该向内归因。
16.你对我们公司了解多少?
面试前,需要提前对面试企业进行全面了解,以视求职者重视。
了解的内容包括:企业文化、企业性质、企业的经营范围、企业取得的成就等。
此题回答好(投其所好)是加分题。
17.请说出你选择这份工作的动机?
马斯洛五层层次需求理论的最高层是个人价值自我实现,我觉得选择这份工作的最大动 机是能为咱们企业奉献自己的能力,让自己的能力最大化地为企业创造价值,从而体现 个人的价值。
另外就是咱们企业在行业中有很高的地位,有很好的企业文化、企业制度,我相信这在 样的企业任职,能更好的发挥自己的才能。
18.你最擅长的技术方向是什么?
技多不压身,特别是有的学生身怀多种技能。例:深化设计师+造价师,一个顶多人用, 为企业大大省去人力资源成本与管理成本。
擅长的技术方向要求介绍明白,可以结合项目论证自身这方面的实力。
19.你能为我们公司带来什么呢?
减低用人的成本:身怀多种技能。例:深化设计师+造价师,一个顶多人用,为企业大 大省去人力资源成本与管理成本。
创造更高的效益:有较为丰富的工作经验,能更快上手,能全局把握项目。
20.最能概括你自己的三个词是什么?
此三个词与工作相关,并能突显你的工作能力。
例:适应能力强、有责任心、做事有始有终、身体力行等。
21.你的业余爱好是什么?
找一些富有团队合作精神的事或个人耐力方面的事。
不能谈低俗或影响工作的事。
篮球、极限运动等。
22.作为被面试者给我打一下分?
谈优点,不可谈缺点。
礼貌回避打分,以学习的心态虚心请教面试者。
试着列出四个优点和一个很小的缺点。例:亲和力强、责任意识强、和善等
23.你怎么理解你应聘的职位?
把岗位职责和工作任务及工作态度阐述一下。
把本职位与领导的关系与同伴的协作阐述一下。
24.喜欢这份工作的哪一点?
企业文化;
经营理念;
有挑战性的工作;
25.为什么要离职?
不能抱怨上一家公司的领导与相关的事情,有能有损上一家企业的声誉;
不能有损自身的形象;
例:公司迁移、业务取消、希望找个适合发挥自身能力实现的平台等
26.说说你对行业、技术发展趋势的看法?
宏观经济:建筑行业(装饰、土木工程)发展趋势与增长点。
该岗位在部门使用的技术与的意义。
该岗位的新技术走向。
27.对工作的期望与目标是什么?
能不断挖掘出自身的潜力为企业创造出更大的价值。
28.说说你的家庭?
父母的经历决定了自己的后天素养,积极的方面决定性格的积极能量。
家庭的生活经历构建了自身的吃苦耐劳、认真负责、有始有终的素养。
29.你觉得你还欠缺什么?
大众化的欠缺,不能影响到当下的工作。
例:社会经验不足、沟通能力要需提高。
30.你欣赏哪种性格的人?
诚实、守信、认真、负责的人等
31.你通常如何处理别人的批评?
首先得有正确的认识,对别人的批评要虚心接受,有则改之,无则加勉,但对于人家的 批评要表示乐意、欢迎的态度。
其次要向内归因,正视自己的不足,努力改正缺陷。
32.怎样对待自己的失败?
首先得有正确的认识,敢于面对,敢于担当,从失败中吸取经验教训。
对失败要求戒骄戒躁、诚惶诚恐、不屈不挠。
33.什么会让你有成就感?
为我们公司竭力效劳,尽我所能,完成项目,得到领导认同。
34.眼下你生活中最重要的是什么?
对我来说,能在这个领域找到工作是最重要的,能为我们公司任职对我最重要;
35.你为什么愿意到我们公司来工作?
找寻企业的亮点,面试前积极准备,并认真了解。
公司的文化、公司的愿景、公司的制度、公司是行业中的地位;
36.你如何解决与别人间的争执?
争执的前提不能影响公司的利益及公司的形象。
换位思考,优先解决对方的问题。
正确归因,找寻自身的问题,并处理好彼此矛盾。
37.你做过的哪件事情最令自己感到骄傲?
谈与工作相关的,突出解决问题的能力、协调能力、沟通能力等。
胜而不骄,从中总结与经验。
38.客户对你的工作始终不满意,你如何解决?
换位思考,对方为何始终不满意,找到自身的问题,并拿出解决的方案。
及时请示领导,商量解决问题的办法。
始终保持客户至上的原则,服务到对方“绝望”为止。
39.对这项工作,你有哪些可预见的困难,如何解决?
目标及标准的紧盯。
与他人的协同。
时间的控制。
突发状况的处理。
40.如果我录用你,你将怎么开展工作?
熟悉自己的工作职位、职责。
听取领导的工作指示和要求。
制定一份近期工作计划并报领导批准。
最后根据计划开展工作。
41.你希望与什么样的上级共事?
跟什么样的上级共事不重要,重要的是帮助上级或和上级一起完成组织的目标更重要。
上级之所以是上级,必有他过人之处,虚心学习,认真履行工作职责,成为上级的好助手。
注:最好回避自己的要求,多谈如何严格要求自己。
42.与上级意见不一,你怎么办?
提醒上级,并服从上级的意见。
(如果面试上总经理,则考虑公司的利益,可能会跨级上报。)
43.你工作经验欠缺,如何能胜任这项工作?
体现出诚恳、机智、果敢及敬业;
突显上进心、勤奋、好学。
44.如果你这次面试失败,你怎么打算?
正确归因,从中找到原因、找到方法,不屈不挠。
敢于面对失败,走出阴影,加强学习,完善不足。
虚心请教,迷途知返。
45.假如家事与公事冲突,你如何解决?
认识:工作无小事,以大局为重。
忠义不能两全时,以大局为重。
46.谈谈你过去成功的案例?
谈与当下工作有关的事,最好有代表性,把握来龙去脉,谈出成功的要素来。
总结经验,因此给自己带来的收获说清楚。例:勇挑重挑、有效沟通、紧盯结果等。
47.谈谈你过去的工作中,令你受挫的事情?
谈与面试工作有关的事,把受挫的原因说明白,同时把如何争的措施说清楚。
教训大于遭遇,把因此获得的成长经验总结出来,以指导今后工作。
48.如何安排自己的时间?怎么看待加班?
首先视当前的工作职责及工作任务而定。
其次视领导的工作安排而定。
因为目前单身,年富力强,希望工作来充实自己,完善自己,多承担理所当然,也很乐 意。
所以加班正常,这个行业加班也很正常,这不是问题。
49.为什么我们要在众多面试者中选择你?
一人顶多人用:专业的角度,我两个以上职位;精力的角度,加班加点多干几个人的活。
经验+技术+素养:更快上手、更有品质解决问题。
50.何时可以到岗?
不能说马上就可以入职(一般在3-5天),给自己留点“回旋”的空间。
把手上的活干完,全力以赴为咱们公司做工作。
51.你并非毕业于名牌院校?
邓小平主席说:不管是白猫,还是黑猫,能抓住老鼠就是好猫。名牌不能代表工作能力, 伴随市场化的细分,宏观经济的影响,企业的生存环境越来越恶劣,有丰富项目经验、 有过硬的专业能力、良好的职业素养的人才越来越受到企业的青睐。很多名牌,挂着名 牌却不能干名牌该干的事,空有其表。只注意一纸文凭,全然不考虑企业用人要求,不 得不察。
八维虽非象清华、北大的名牌,但它有着象哈佛一样的血统,急企业之所急,把人才战 略当成学校的核心,一切为了用人单位的需求,全力打造学生的项目经验、专业技能、 职业素养,让学生紧跟市场步伐,把企业用人标准当成自己教育的标准,用超越企业用 人的标准满足企业不同层次需求。让课堂就是小企业,把企业当成大课堂,全面提升学 生的解决问题的能力、学习能力、沟通能力、职业素养,不得不察。
52.怎样看待学历与能力?
学历不代表能力:学历代表的是学习的经历,经历不一定产生工作能力,如果学习的过程是紧紧围绕工作职位标准展开,通过学习经验打造学生的项目经验、专业能力、职业 素养,那么,学历就能转化成能力。
能力远大于学历的要求:从社会实践来看,人需要学习能力、沟通能力、解决问题的能力,那个企业都不愿养闲人,都希望来了就能干活,如果一学校不能将项目经验、专业 能力、职业素养不能更好地变成学生的能力,那么空有学历,也没有太大意义,八维建筑学院的特色就在于:“完全化的项目实战+文化素养的训练+专业底蕴的打造”来满足
用人单位不能层次的需求,到了企业就能快速适应,到了企业就能干活。
Android技术技话
1.&开发中都遇到了什么问题?
(1)&剖析
企业提出这个问题的原因大致有两个原因,其一验证面试人员的履历是否真实,如果面试人员没有经历过真实的项目那么他是无法真实且准确的预料开发中所遇到的问题的;其二,企业着实想通过这个问题考验面试人员的逻辑思维能力及问题处理能力,那么问题来了,解决问题的士兵就是好士兵了吗?其实不然,企业更希望面试人员可以提供更多的解决方案。
(2)&目标
能够通过对这个问题的回答获得主导权,尽量回答更多的问题,从而避免面试官提问,面试官每天都面试那么多人,他们很累的。
(3)&参考话术
对于这个问题,我们在以往的项目开发过程中确实遇到了一些比较棘手的问题,比如在之前做过的新闻项目(或电商项目)中由于业务需要,我们不得不频繁的加载网络图片,从而导致内存溢出的现象大频率出现,这在当时确实是个比较头痛的事儿,后来经过我们小组会议确定了一种解决方案,那就是使用开源项目ImageLoader来实现图片缓存处理,ImageLoader是一款非常优秀的开源项目,在GItHub上可以下载到,那么在CSDN上也有很多技术大牛对ImageLoader发表了很多优秀的博文,ImageLoader可以实现三级缓存,多线程下载图片,图片不仅可以来源于网络,也可以来源于本地的文件系统,而且ImageLoader还可以支持随意的配置线程池、图片下载器、内存缓存策略、硬盘缓存策略、图片显示等一些列的配置信息,最主要的,ImageLoader可以实现图片下载过程的监听,那么在图片缓存的开源框架中,优秀的产品不仅仅有ImageLoader一款,比如Picasso、Glide也都是非常的优秀,而且使用起来也非常的容易上手,我们站在用户的需求上考虑,如果用户要求更完美的展现图片的细节,那么非Picasso莫属,如果更注重于顺滑的图片滑动体验,Glide更加合适,然而当时我们公司为什么选择了ImageLoader呢,主要原因还是在于ImageLoader可以支持图片下载的过程监听。
在项目开发过程中,奇葩的问题实在是太多了,比如说之前我们做过的一款电商项目(或新闻项目),由于用户加了一些比较特色的需求,我们大概用了2个多月的时间把项目完成,交付给了甲方,由于刚开始他们的用户并不多,可能是他们公司运营方面做的比较到位,在大概半年左右的时间用户量就达到了一个比较理想的数字,也就是去年年初的时候吧,随着平板电脑的普及,他们发现软件在手机上运行的都挺理想的,但是在平板电脑上用起来就不舒服了,很多页面都走样了,然后找到了我们公司,做了二次开发,我们接到项目的时候,经过小组讨论分析,确定是屏幕适配的问题,其实当时我们也挺头痛的,但是没办法,公司是要挣钱的,问题很简单方法多得很,最开始我们考虑使用权重的方式来实现,大部分页面还是中规中矩的,但是大体效果还不是特别的理想,后来我们也是选择了一款Google提供的开源项目PercentSupport,这款百分比布局开源项目也可以在GitHub上下载到,有了他,我们笑了,问题解决了,在后来的项目开发中我也学习到了其他的解决方案,比如说AutoLayout,我认为,经验就是这样通过在不断的开发,不断的总结,不断的学习中积累的,其实说到底我还是得感谢XXX(上家公司名称),也是他成就了今天的我。
(4)&总结
通过以上的参考话术,大家想想,有哪些问题面试官不会再问你了?
a.&你都浏览过那些开源项目?
b.&请讲一下ImageLoader的缓存原理?
c.&如何实现屏幕适配的?
d.&如何解决内存优化的问题?
e.&你会使用GitHub吗?
f.&你的学习能力怎么样?
g.&你的工作(项目)经历?
h.&是否可以独立开发?
2.&IM(即时通讯)方面
我们之前在XXX项目中使用到了即时通讯技术,在此之前对于IM技术我也做过些许的技术储备,比如OpenFire服务器的搭建,asmack开源框架的理解,曾经我也参考了CSDN上的一些技术大牛发表的博文写了一个关于IM的Demo,但是当时由于项目工期问题和服务器的投入问题,我们还是放弃了自主研发,选择了一款第三方的产品,融云IM,在确定选择这款产品之前,我们也在当期口碑比较好的其他产品中做了一个比较,比如说环信,可以说最开始我们用的就是环信做的Demo,可能是运气的问题吧,我们用的时候,环信的服务器总是不稳定,掉线的情况频频发生,消息送达率也非常低,而且断线重连做的也不是很理想,所以后来我们也就放弃了,当时还有一款腾讯的产品叫信鸽,他在服务器方面做的还是非常理想的,但是他不支持即时通讯,我们想要实现IM只能用推聊的方式来实现,所以经过最终的考量,我们还是选择了融云,融云非常的好用,他为我们提供了一套核心依赖库和一套界面库,通过这套界面库,我们可以实现快速集成,记得当时我们的即时通讯功能不到一个星期就全完成了,非常好用。
3.&支付方面
我们在xxx项目中用到了支付技术,当时我们用到的是支付宝支付和银联支付,支付方面都比较简单了,在确认集成后,支付宝公司和银联会提供给我们相关的集成文档和SDK,我们就是按照这些资料进行集成的,相关实现都很简单,我那边也保留了最开始做的Demo的源码,如果咱们公司要用的话,我这边很快就能完成工作。
4.&第三方SDK
出于个人的想法啊,我个人还是比较喜欢自主研发的,但是在项目开发过程中,往往因为工期的原因我们不得不选择一些第三方提供的SDK,缩短研发周期,毕竟公司不是慈善机构,需要快速的回拢资金,那么在以往的项目中,我们地图(百度地图)、支付宝、银联、IM(融云)、推送(极光推送或个推)、社会化分享(MoBO)、第三方登录(友盟)方面的SDK用到的还是比较多的。
5.&产品介绍
首先要夸赞和认同自己的项目,你想一下,如果你都不认同自己的项目,那么其他人还会认同你的项目吗?他只会视你的现年购买为不入流的玩物,这就是一种心理暗示的体现。
在介绍项目的同时,我们应当圆滑的由项目引到开发项目遇到的问题上(参考话术1.开发中都遇到了什么问题?),这样,你想一下,面试官还会问你开发中都遇到了什么问题吗?
我们之前做项目的时候经常使用到加密算法,我了解的常用的加密算法有对称加密和非对称加密两大类型,对称加密就是加密和解密使用同一个密钥,比如说当前被大家广为使用的DES加密算法;那么非对称加密就是加密和解密使用的不是同一个密钥,非对称加密呢通常有两个密钥,分别是“公钥”和“私钥”,他们必须配对使用,否则不能打开加密文件,当然“公钥”是对外公布的,“私钥”则不能对外公布,只能由持有人自己知道,它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难不把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题,比如说当前使用非对称加密的有HTTPS。
那么MD5算法其实严格来说,他并不能算是一种加密算法,他只能说是一种摘要算法(摘要算法:数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法、散列算法)。MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。那么我们在开发中一般使用MD5来签名用户的密码。
我们公司之前开发中也常用加密算法,大家都知道如果是HTTP的GET请求的话,在IE上请求接口,响应的内容会直接明文显示,那么这就毫无安全可言了,对于这种情况我们在接口方面使用了BASE64加密算法进行加密并用GZIP进行了压缩处理,在手机端我们将请求到的数据先通过GZIP解压缩再使用BASE64加密算法进行解密处理获得明文,这样在安全性上得到了一个保证。
7.&组织架构
我们公司因为是外包公司嘛,组织架构上也不是特别的明确,基本大部分的决策性工作比如财务、销售都由老板来做了,我上面有个项目经理,人挺好的,我还有6个同事,2个ios的,2个安卓(加上我)的,1个美工,1个做接口的,人事工作如果老板在就老板做,但是基本都是项目经理来做了。
8.&工作分配流程及协作
流程的话,一般都是老板在外面谈项目,如果项目是二次开发或是接口和美化都有的话,项目经理会给我们讲讲实现的需求,分配工期,我们就可以工作了,但是我们每天都有日报,周末的时候也会开周总结会。如果接到的项目是新项目,我们经理就会给我们开会,根据用户需求设计原型图,当然我们经理都会要求我们做原型图,在Axure方面我还是很不错的,然后确认原型,大概这个阶段不会太长,最长时间基本也不会超过1个星期,当然这段时间加班是必不可少的,甲方确认原型后我们的美工就开始做UI设计了,我们几个研发主要就是设计接口,接口名,JSON结构体,输入参数和输出参数都定好,然后出接口文档,之后大家就按照这个接口协议进行开发,由于协议对好了,开发完成后基本都能对接上,等美工把切图做好了,我们再把图片替换做相应屏幕的适配。
9.&3年工作经验项目数量不够
您也知道咱们做外包的项目周期都非常短,基本2-3个月就一个项目,快的可能1个月就完成了,我这3年基本做了也差不多20左右个项目了,但是咱们写简历嘛,主要还是把最经典的项目写上去,我觉得我这三年的工作中最中意的就是这5个了。
10.&自定义控件
说到自定义控件,无非就是重写measure方法和layout方法,根据咱们的业务需求测量和重绘控件,像这种自定义控件的需求千篇一律,掌握好了原理,基本都能实现。
Android 面试题大全
1.&图片处理
现在主流的图片加载的框架的 UIL(ImageLoder),Volley,Glide,Fresco,Picasso等
UIL作为老牌的图片处理的框架,DisplayImageOptions可以通过对其进行个性化的设置,比如图片的大小,缓存的级别,缓存的大小,对下载过程进行监听。单例模式,在项目开发中先进行配置之后方便使用。
Glide和Picasso用法相近,
Gilde支持参数比较多,图片与activity和fragment的生命周期一致,onpuse时暂停,onresumed时从新加载
Picasso图片质量高 ,注重图片的细节Glide默认的Bitmap格式是RGB_565,Picasso是ARGB_8888格式的,但是Glide加载的数据更快,Gilde可以加载Gif。
Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,简单易用一般用来处理数据量不大的操作,比如我们在项目中商品信息的展示这样用Volley就会非常的好用
,StringRequest和JsonRequest用来请求数据,ImageRequest用来请求图片。使用起来非常方便。
Fresco以控件的形式直接加载图片对图片进行高效的处理,同时也能加载动图,设置图片的圆角,圆形图片直接用它的话不用去重写制定以view。
2.加密解密
我们之前做项目的时候经常使用到加密算法,我了解的常用的加密算法有对称加密和非对称加密两大类型,对称加密就是加密和解密使用同一个密钥,比如说当前被大家广为使用的DES加密算法;那么非对称加密就是加密和解密使用的不是同一个密钥,非对称加密呢通常有两个密钥,分别是“公钥”和“私钥”,他们必须配对使用,否则不能打开加密文件,当然“公钥”是对外公布的,“私钥”则不能对外公布,只能由持有人自己知道,它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难不把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题,比如说当前使用非对称加密的有HTTPS。
那么MD5算法其实严格来说,他并不能算是一种加密算法,他只能说是一种摘要算法(摘要算法:数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法、散列算法)。MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。那么我们在开发中一般使用MD5来签名用户的密码。
我们公司之前开发中也常用加密算法,大家都知道如果是HTTP的GET请求的话,在IE上请求接口,响应的内容会直接明文显示,那么这就毫无安全可言了,对于这种情况我们在接口方面使用了BASE64加密算法进行加密并用GZIP进行了压缩处理,在手机端我们将请求到的数据先通过GZIP解压缩再使用BASE64加密算法进行解密处理获得明文,这样在安全性上得到了一个保证。
2.HTTPS和HTTP的区别
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS和HTTP的区别主要为以下四点:
1)、ps协议需要到ca申请证书,一般免费证书很少,需要交费。
2) 、是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3) 、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4) 、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
1.常用的存储方式有哪些?
(五种,说出哪五种,五种存储方式什么情况下用。)注意sharepreferes对象支持读取不支持写入,写入引用。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用的一种数据存储方式。Android为此数据库提供了一个名为SQLiteDatabase的类,封装了一些操作数据库的API。
SharedPreference:
除SQLite数据库外,另一种常用的数据存储方式,其本质就是一个xml文件,常用于存储较简单的参数设置。
即常说的文件(I/O)存储方法,常用语存储大数量的数据,但是缺点是更新数据将是一件困难的事情。
ContentProvider:
Android 系统中能实现所有应用程序共享的一种数据存储方式,由于数据通常在各应用间的是互相私密的,所以此存储方式较少使用,但是其又是必不可少的一种存储方式。例如音频,视频,图片和通讯录,一般都可以采用此种方式进行存储。每个ContentProvider都会对外提供一个公共的URI(包装成Uri对
象),如果应用程序有数据需要共享时,就需要使用ContentProvider为这些数据定义一个URI,然后其他的应用程序就通过 Content&Provider传入这个URI来对数据进行操作。
网络存储:
从网络读取数据和写入数据。&Android提供了通过网络来实现数据的存储和获取的方法。
&我们可以调用WebService返回的数据或是解析HTTP协议实现网络数据交互。
2.安卓中动画有几类,他们的特点和区别?
&& 两种,一种是补间动画,还有一种是帧动画,帧动画类似于放电影,通过播放已经排列放好的图片来实现。
补间动画的实现定义开始和结束,中间由系统计算得出效果有透明,位移,放大缩小等等。
自定义录音或者进度条过程,会应用到帧动画,补间动画,一般用于应用的欢迎界面。
(菜单弹出,例如赞和评论,是个动画过程。)
3.handler机制原理
Handler主要用于线程间的通信。
一个Handler允许发送和处理Message和Runable对象,UI主线程会自动分配一个Looper(消息轮询器),每个Looper中封装着MessageQueue(消息队列),遵循先进先出原则。Looper负责不断的从自己的消息队列里取出队头的任务或消息执行。一般是在子线程执行完耗时操作之后,通过Handler的sendMessage或post方法将Message和Runable对象传递给MessageQueue,而且在这些对象离开MessageQueue时,Handler负责执行他们(用到handleMessage方法,主要执行刷新UI的代码)。&
其中Message类就是定义了一个信息,这个信息中包含一个描述符和任意的数据对象,这个信息被用来传递给Handler.Message对象提供额外的两个int域和一个Object域。
字面以外加上关联点。
4除了handler和子线程,还有一个处理线程的是什么,主要方法是什么?
AsynTask,doInbackGround+onPostExecute
doInBackground()&这个方法运行在后台线程中,主要负责执行那些很耗时的操作,如访问网络。该方法必须重写。
onPostExecute(Result)&这个方法运行于UI主线程,在doInBackground(Params…)方法执行后调用,该方法用于接收后台任务执行后返回的结果,刷新UI显示
@5.tcp和udp区别.
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务,传输数据前经过“三次握手”建立连接,保证数据传输的可靠性,但效率比较低。一般用于对于数据传输安全性较高的场合。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议,面向无连接。UDP不提供可靠性,数据传输可能发生错序,丢包,但效率较高。一般用于对于实时性要求较高的场合。
6线程之间的通信方式(如何避免ANR)
(1).&AsyncTask,其中doInBackground()和onPostExecute(Result)两个方法非常重要
doInBackground()&这个方法运行在后台线程中,主要负责执行那些很耗时的操作,如访问网络。该方法必须重写。
onPostExecute(Result)&这个方法运行于UI主线程,在doInBackground(Params…)方法执行后调用,该方法用于接收后台任务执行后返回的结果,刷新UI显示。
(2.)子线程&+&handler
在子线程中执行完耗时操作需要刷新UI时,通过handler.sendMessage()发消息给主线程,&然后在主线程Handler中的handleMessage()方法中执行刷新UI操作
7.activity的生命周期
&&&&&// &&&&&&开始 重新启动 &停止 &&&&&&&&&&&&&&&&&&销毁 &&&&&&&&&暂停
七个,oncreate,onstart,onrestart,onstop,onresume,ondestroy,onpause;(清楚整个周期的过程)
1).启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2).当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3).当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4).当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5).用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6).当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7).用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
8.ArrayList和LinkedList区别?
存数据,ArrayList数组存储数据,索引值以下标来搜索,查询比较方,删除增加比较麻烦,但是linkedList以链表式存储数据,对于增删比较方便。
9.安卓内存的优化?*
1)静态变量引起内存泄露
在代码优化的过程中,我们需要对代码中的静态变量特别留意。静态变量是类相关的变量,它的生命周期是从这个类被声明,到这个类彻底被垃圾回收器回收才会被销毁。所以,一般情况下,静态变量从所在的类被使用开始就要一直占用着内存空间,直到程序退出。如果不注意,静态变量引用了占用大量内存的资源,造成垃圾回收器无法对内存进行回收,就可能造成内存的浪费
2)使用Application的Context
在Android中,Application Context的生命周期和应用的生命周期一样长,而不是取决于某个Activity的生命周期。如果想保持一个长期生命的对象,并且这个对象需要一个 Context,就可以使用Application对象。可以通过调用Context.getApplicationContext()方法或者
Activity.getApplication()方法来获得Application对象。
3)及时关闭资源
Cursor是Android查询数据后得到的一个管理数据集合的类。正常情况下,如 果我们没有关闭它,系统会在回收它时进行关闭,但是这样的效率特别低。如果查询得到的数据量较小时还好,如果Cursor的数据量非常大,特别是如果里面
有Blob信息时,就可能出现内存问题。所以一定要及时关闭Cursor。
4)使用Bitmap及时调用recycle() &&&// 把 重复循环的方法设置 为 null,释放内存
前面的章节讲过,在不使用Bitmap对象时,需要调用recycle()释放内存,然后将它设置为null。虽然调用recycle()并不能保证立即释放占用的内存,但是可以加速Bitmap的内存的释放。
在代码优化的过程中,如果发现某个Activity用到了Bitmap对象,却没有显式的调用recycle()释放内存,则需要分析代码逻辑,增加相关代码,在不再使用Bitmap以后调用recycle()释放内存。
&&& 5)对Adapter进行优化
下面以构造ListView的BaseAdapter为例说明如何对Adapter进行优化。
@软引用和弱引用。
如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。
如果一个对象只具有弱引用,那么在垃圾回收器线程扫描的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程,因此不一定会很快发现那些只具有弱引用的对象。弱引用也可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被垃圾回收,Java虚拟机就会把这个弱引用加入到与之关联
的引用队列中。
弱引用与软引用的根本区别在于:只具有弱引用的对象拥有更短暂的生命周期,可能随时被回收。而只具有软引用的对象只有当内存不够的时候才被回收,在内存足够的时候,通常不被回收。
在Android应用开发过程中,屏幕上控件的布局代码和程序的逻辑代码通常是分开 的。界面的布局代码是放在一个独立的xml文件中的,这个文件里面是树型组织的,控制着页面的布局。通常,在这个页面中会用到很多控件,控件会用到很多的 资源。Android系统本身有很多的资源,包括各种各样的字符串、图片、动画、样式和布局等等,这些都可以在应用程序中直接使用。这样做的好处很多,既 可以减少内存的使用,又可以减少部分工作量,也可以缩减程序安装包的大小。
10.framgment生命周期?
oncreate,onstart,onrestart,onstop,onresume,ondestroy,onpause,onAttach,onCreateView,onDettach,onDestroyV(和activity的生命周期比较,会更好)
&MyFragment onAttach() 粘贴到activity上
MyFragment onCreate() fragment创建
MyFragment onCreateView() fragment创建自己的视图
MainActivity onCreate()
MyFragment onActivityCreated() 可以处理fragment数据的初始化
MainActivity onStart()
&MyFragment onStart()
MainActivity onResume()
MyFragment onResume()
MyFragment onPause()
MainActivity onPause()
&MyFragment onStop()
&MainActivity onStop()
MyFragment onDestoryView() 销毁掉自己的视图
MyFragment onDestory()
MyFragment onDetach() 解除和activity的关系
MainActivity onDestory()
@11·图片异步加载怎么做?
可定义图片异步加载工具类,核心方式实现思路如下:
1.先从内存缓存(Map&String,SoftReference&Bitmap&&中获取图片显示
2.获取不到的话从本地SD卡里获取并显示
3.都获取不到的话通过子线程从网络加载图片并保存到内存及SD卡中并通过handler显示
@12·service和Thread区别?
1).Thread:Thread&是程序执行的最小单元,它是分配CPU的基本单位。可以用&Thread&来执行一些异步的操作。&
2).Service:Service&是android的一种机制,当它运行的时候如果是Local&Service,那么对应的&Service&是运行在主进程的&main&线程上的。如:onCreate,onStart&这些函数在被系统调用的时候都是在主进程的&main&线程上运行的。如果是Remote&Service,那么对应的&Service&则是运行在独立进程的&main&线程上
13·内存泄露如何解决?
1)、&&&数据库的cursor没有关闭&
2)、&构造adapter没有使用缓存contentview&
&&&衍生的listview优化问题:减少创建View的对象,充分使用contentview,可以使用静态类来处理优化getView的过程&3、Bitmap对象不使用时采用recycle()释放内存&4、Activity中的对象生命周期大于Activity
)Bitmap对象不使用recycle()释放内存
)Activity中的对象生命周期大于Activity;
内存泄露大多数都是由于相同的错误导致的,即:对Context拥有较长时间的引用。
避免Context相关的内存泄露 ,记住以下事情:&
&&&不要保留对Context-Activity长时间的引用(对Activity的引用的时候,必须确保拥有和Activity一样的生命周期)&
&&&尝试使用Context-Application来替代Context-Activity&
&&&如果你不想控制内部类的生命周期,应避免在Activity中使用非静态的内部类,而应该使用静态的内部类,并在其中创建一个对Activity的弱引用。这种情况的解决办法是使用一个静态的内部类,其中拥有对外部类的WeakReference,如同ViewRoot和它的Winner类那样&
&&&GC(垃圾回收)不能解决内存泄露问题&
14·MVC的使用?
mvc是model,view,controller的缩写,mvc包含三个部分:&
l模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。&
l视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。&
l控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,想用用户出发的相关事件,交给m哦得了处理。&
android鼓励弱耦合和组件的重用,在android中mvc的具体体现如下:&
1)视图层(view):一般采用xml文件进行界面的描述,使用的时候可以非常方便的引入,当然,如何你对android了解的比较的多了话,就一定 可以想到在android中也可以使用javascript+html等的方式作为view层,当然这里需要进行java和javascript之间的通 信,幸运的是,android提供了它们之间非常方便的通信实现。&
2)控制层(controller):android的控制层的重 任通常落在了众多的acitvity的肩上,这句话也就暗含了不要在acitivity中写代码,要通过activity交割model业务逻辑层处理, 这样做的另外一个原因是android中的acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。&
3)模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理,当然对业务计算等操作也是必须放在的该层的。&
15·常用的设计模式
单例设计模式
&&&&&& 所谓单例设计模式简单说就是无论程序如何运行,采用单例设计模式的类(Singleton类)永远只会有一个实例化对象产生。具体实现步骤如下:
&&&&& (1) 将采用单例设计模式的类的构造方法私有化(采用private修饰)。
&&&&& (2) 在其内部产生该类的实例化对象,并将其封装成private static类型。
&&&&& (3) 定义一个静态方法返回该类的实例。
工厂设计模式
&&&&&& 程序在接口和子类之间加入了一个过渡端,通过此过渡端可以动态取得实现了共同接口的子类实例化对象
代理设计模式
&&&&&& 指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。比如生活中的通过代理访问网络,客户通过网络代理连接网络(具体业务),由代理服务器完成用户权限和访问限制等与上网相关的其他操作(相关业务)。
观察者设计模式
&&&&&& 所谓观察者模式,举个例子现在许多购房者都密切观察者房价的变化,当房价变化时,所有购房者都能观察到,以上的购房者属于观察者,这便是观察者模式。
&&&&&& java中可以借助Observable类和Observer接口轻松实现以上功能。当然此种模式的实现也不仅仅局限于采用这两个类。
适配器模式
&&&&&&& 如果一个类要实现一个具有很多抽象方法的接口,但是本身只需要实现接口中的部分方法便可以达成目的,所以此时就需要一个中间的过渡类,但此过渡类又不希望 直接使用,所以将此类定义为抽象类最为合适,再让以后的子类直接继承该抽象类便可选择性的覆写所需要的方法,而此抽象类便是适配器类。
16·面向对象的特征?
封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。
实现多态,有二种方式,覆盖,重载。
覆盖,是指子类重新定义父类的虚函数的做法。
重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
17·程序结束的时候,如何处理Activity的?*
记录打开的Activity:(/blog/1576055)
每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。&
18·配置文件中存放什么?
四大组件,意图,权限,第三方key,版本号等
19·Final ,finally,finalized,区别;
final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此
方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
20·NDK是什么?
NDK 是 Native Development Kit 的简称。它是一个工具集,集成了 Android 的交叉编译环境,并提供了一套比较方便的 Makefile ,可以帮助开发者快速开发 C 或是 C++ 的动态库,并自动的将 so 和 java 程序打包成 apk ,在 Android 上运行。Android 上,应用程序的开发,大部分基于 Java 语言来实现。要使用 c 或是 c++ 的程序或库,就需要使用 NDK 来实现。 &
21百度地图和谷歌地图的优缺点?
1一打开百度地图页面,显示的就是目前所在城市地图,谷歌地图不然。
2百度地图的界面,百度地图很多都是在显眼位置用文字做提示,一目了然,谷歌界面有点炫,很多用图标来表示,但是用起来相对复杂,不熟悉的用户需要确定这个图标是否是所需要选择的。
而百度地图搜索框下就直接有“公交”“驾车”的选项,界面简洁直接很多,谷歌地图需要点击获取路线,再点击小图标来选择“公交”这些选项,而且图标不够引人注目,使用起来相对复杂些,试想一个很少用网络地图的人分别使用二者地图,那个更方便呢?应该是,大多数用户通过地图是查询位置-这个地方在哪,周围有什么地物,查询路线-从一个方到另一个地方如何到达,用百度地图,这些问题很容易解决,而用谷歌地图得摆弄一会儿。
3百度地图的查询路线更好,首先还是界面更简洁直接,然后是数据的问题,先不管为他们提供数据的公司如何,刚刚特意同时查了下,同样地起点和终点, 百度地图给出了5条路线,谷歌地图给出的是4条路线,而且百度地图路线的选择时可以选择“较快捷”“少换乘”“少步行”三种方式,更方便。打车费用也直接
显示出来,而且个人体会10元内的打车费用基本正确。
4百度地图有个视野内搜索功能,可以很方便地查找到目标位置,谷歌地图没有。这个很重要。
5一个重要界面布局问题,百度地图是地图视野在左,而谷歌地图是地图视野在右,我们现在时喜欢从左到右看东西啊,这点百度地图更符合用户习惯。(当然也可能是我常用百度地图,所以这么觉得)
&PS:刚在知乎上有朋友说到——因“左图右列表”强调的是“地图”,反之强调的是“搜索”;我们发现用户在经过这么些年的教育后,“不在乎”地图在哪边,相对其它体验,这一点影响用户选择服务的权重并不高。
6百度地图已经和都市圈合作推出了部分城市如北京、上海、深圳、广州的三维地图,谷歌地图没有。
7百度地图地图视野上方有个截图功能,可以直接拉框截图,谷歌地图没有。&
8以北京实时路况信息为例,直接输入北京查询,百度地图显示的是主城区的实时路况,而谷歌显示的区域很大,包括了密云、廊坊市了,但是实时路况信息还是显示的主城区,显示路况的彩色条就全挤在一起了,设计得不如百度好。
8使用百度的占大多数,经常可以听到“百度一下啊”的话语。随之带来百度地图的使用率也相对较高。
9百度地图的地图百宝箱、房产、天气等信息。
1如果需要从网络地图上获取数据的话,谷歌地图完胜,而且还有谷歌地球在一旁辅助,如虎添翼,从网上各种各样的谷歌地图相关工具软件就可以看出。
2路线查询时输入地点名称却有多个符合条件时,会给出一个下拉菜单给予选择,同一地点谷歌地图提供的数据精确到街道,而百度地图精确到区。
3谷歌地图可以将侧边栏隐藏起来,看到更大的地图视野,而百度地图是点击全屏来显示更大的视野,两种切换方式比起来谷歌的更舒服。
4谷歌地图有个分享链接功能,而且还提供“粘贴 HTML 以便嵌入到网站”这一功能,百度没有。
5界面布局百度地图更简洁,但是色彩搭配上和画面感上谷歌地图更好。&
6谷歌的品牌形象占优。
22·安卓的系统架构
应用层:使用Java语言进行开发的一些应用程序
应用框架层:主要是谷歌发布的一些操作支持的类库(API框架),开发人员可以使用这些类库方便的进行程序开发,但是在开发时必须遵守框架的开发原则
系统运行库层:当使用安卓框架层进行开发时,安卓操作系统会自动使用一些c/c++的库文件来支持所使用的各个组件,使其可以更好的为程序服务;
Linux内核层:安卓操作系统主要是基于Linux内核,程序的安全性,驱动程序,进程管理等都由Linux内核提供。
23.listView优化
1)、convertView复用,对convetView进行判空,当convertView不为空时重复使用,为空则初始化,从而减少了很多不必要的View的创建
2)定义一个ViewHolder,封装Listview&Item条目中所有的组件,将convetView的tag设置为ViewHolder,不为空时通过ViewHolder的属性获取对应组件即可
3)、当ListView加载数据量较大时可以采用分页加载和图片异步加载
24·安卓上安装了多个浏览器,能否指定页面访问;
通过直接发送URI把参数带过去,或者通过Manifest里的intentfilter的data属性
25·简述音乐播放的方式与区别?
1):MediaPlayer:主要用于播放音频,可以播放视频,但是一般不用其进行视频播放。
&&&2):SoundPool:主要用于播放一些短促的声音片段,主要优势是cpu资源占有量低,反应延迟小。
26·工作中如何利用线程池的?】
Java通过Executors提供四种线程池,分别为:
newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
27·onTouch和onTouchEvent区别?
1.onTouch方法:
onTouch方法是View的 OnTouchListener接口中定义的方法。
当一个View绑定了OnTouchLister后,当有touch事件触发时,就会调用onTouch方法。
(当把手放到View上后,onTouch方法被一遍一遍地被调用)
2.onTouchEvent方法:
onTouchEvent方法是override 的Activity的方法。
重新了Activity的onTouchEvent方法后,当屏幕有touch事件时,此方法就会别调用。
&28·JSON的结构?
json是一种轻量级的数据交换格式,
json简单说就是对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构
1、对象:对象表示为“{}”扩起来的内容,数据结构为&{key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为&对象.key&获取属性值,这个属性值的类型可以是&数字、字符串、数组、对象几种。
2、数组:数组在json中是中括号“[]”扩起来的内容,数据结构为&[&java&,&javascript&,&vb&,...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是&数字、字符串、数组、对象几种。
经过对象、数组2种结构就可以组合成复杂的数据结构了。
29·SIM卡的EF文件有何作用?
& SIM卡的文件系统有自己的规范,主要是为了和手机通讯,SIM本身可以有自己的操作系统,EF就是作 &&存储并和手机通讯用的。
30.最长的短信多长,多少个字节?
70个汉字,140个字节
31·&和&&的区别
一个位运算符,一个是逻辑运算符
32·Java的基本特征
封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。
实现多态,有二种方式,覆盖,重载。
覆盖,是指子类重新定义父类的虚函数的做法。
重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
33·注册广播的方式
android中,不同进程之间传递信息要用到广播,可以有两种方式来实现。&
第一种方式:在Manifest.xml中注册广播,是一种比较推荐的方法,因为它不需要手动注销广播(如果广播未注销,程序退出时可能会出错)。&
具体实现在Manifest的application中添加:&
&receiver android:name=&.mEvtReceiver&&&
&intent-filter&&
&action android:name=&android.intent.action.BOOT_COMPLETED& /&&
&/intent-filter&&
&/receiver&&
上面两个android:name分别是广播名和广播的动作(这里的动作是表示系统启动完成),如果要自己发送一个广播,在代码中为:&
Intent i = new Intent(&android.intent.action.BOOT_COMPLETED&);&
sendBroadcast(i);&
这样,广播就发出去了,然后是接收。&
接收可以新建一个类,继承至BroadcastReceiver,也可以建一个BroadcastReceiver的实例,然后得写onReceive方法,实现如下:&
protected BroadcastReceiver mEvtReceiver = new BroadcastReceiver() {&
@Override&
public void onReceive(Context context, Intent intent) {&
String action = intent.getAction();&
if (action.equals(&android.intent.action.BOOT_COMPLETED&)) {&
//Do something&
第二种方式,直接在代码中实现,但需要手动注册注销,实现如下:&
IntentFilter filter = new IntentFilter();&
filter.addAction(&android.intent.action.BOOT_COMPLETED&);&
registerReceiver(mEvtReceiver, filter); //这时注册了一个recevier ,名为mEvtReceiver,然后同样用上面的方法以重写onReceiver,&
最后在程序的onDestroy中要注销广播,实现如下:&
@Override&
public void onDestroy() {&
super.onDestroy();&
unregisterReceiver(mPlayerEvtReceiver);&
Android系统中的广播是广泛用于应用程序之间通信的一种手段,它类似于事件处理机制,不同的地方就是广播的处理是系统级别的事件处理过程(一般事件处理是控件级别的)。在此过程中仍然是离不开Intent对象,理解广播事件的处理过程,灵活运用广播处理机制,在关键之处往往能实现特别的效果,&
在Android 中如果要发送一个广播必须使用sendBroadCast 向系统发送对其感兴趣的广播接收器中。&
使用广播必须要有一个intent 对象必设置其action动作对象&
使用广播必须在配置文件中显式的指明该广播对象&
每次接收广播都会重新生成一个接收广播的对象&
在BroadCast 中尽量不要处理太多逻辑问题,建议复杂的逻辑交给Activity 或者 Service去处理&
34·异步和同步的区别?
同步:提交请求-&等待服务器处理-&处理完毕返回&这个期间客户端浏览器不能干任何事&
(顺序执行处理事件)
异步:&请求通过事件触发-&服务器处理(这是浏览器仍然可以作其他事情)-&处理完毕
&&&&&&(可同时执行多个事件的并发)
35·Afinal和XUtils的区别?
Xutils是基于Afinal的
xUtils 包含了很多实用的android工具。
xUtils 源于Afinal框架,对Afinal进行了适当的精简,和一些适度的扩展和重构。
xUtils 具有Afinal的一些特性如:无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位置错位等问题; 简洁,约定大于配置...
&// &&oom==内存溢出 &( 释放内存 bitmap )
// 对XUtils 的理解: Dbutils 、ViewUtils、HttpUtils、BitmapUtils
DbUtils模块:android中的orm框架,一行代码就可以进行增删改查。
ViewUtils模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。
HttpUtils模块:支持同步,异步方式的请求,支持大文件上传;支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD请求,支持multipart上传设置subtype如related。
BitmapUtils模块:加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;内存管理使用lru算法,更好的管理bitmap内存;可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...
// Android 中ANR异常的处理方法 :( 意思是: 应用程序没有响应 ) &
有两种情况会报ANR: &自己添加的
1.主线程在5秒内没有响应输入事件(事件处理/UI线程)
2.广播在10秒内没有完成返回( BroadcastReceiver )
下面是导致android中出现ANR异常的的情况:
1.在主线程内进行网络操作
2.在主线程内进行一些缓慢的磁盘操作(例如执行没有优化的SQL查询)
处理的逻辑是:
1.New一个新的线程,进行数据请求
2.获取数据后,调用handler.sendmessage方法
3.在handler的handle()方法中更新UI
// Android 如何指定浏览器访问 指定页面?
指定action 及 uri 就可以访问制定好的 浏览器了
1&简而言之: 一个程序至少有一个进程,一个进程至少有一个线程
2&线程的划分尺度小于进程,使的多线程程序的并发性高
3&进程在执行的过程中拥有独立的内存单元,而多个线程共享内存,从而提高了程序的运行效率
4&每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制
5&多线程的意义在于一个应用程序中,有多个执行部分可以同时执行,
&但是操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理及分配资源,这就是进程和线程的重要区别
36·ContentProvider的URI的配置?
清单文件之指定URI或者代码里面指定URI,contentProvider通过URI访问数据
37·AIDL的全称是什么,如何工作
AIDL的英文全称是Android Interface Define(定义) Language
当A进程要去调用B进程中的service时,并实现通信,我们通常都是通过AIDL来操作的
首先我们在net.blogjava.mobile.aidlservice包中创建一个RemoteService.aidl文件,在里面我们自定义一个接口,含有方法get。ADT插件会在gen目录下自动生成一个RemoteService.java文件,该类中含有一个名为RemoteService.stub的内部类,该内部类中含有aidl文件接口的get方法。
说明一:aidl文件的位置不固定,可以任意
然后定义自己的MyService类,在MyService类中自定义一个内部类去继承RemoteService.stub这个内部类,实现get方法。在onBind方法中返回这个内部类的对象,系统会自动将这个对象封装成IBinder对象,传递给他的调用者。
其次需要在AndroidManifest.xml文件中配置MyService类,代码如下:
&!-- 注册服务 --&
&service android:name=&.MyService&&
&intent-filter&
&!-- &指定调用AIDL服务的ID &--&
&action android:name=&net.blogjava.mobile.aidlservice.RemoteService& /&
&/intent-filter&
&/service&
为什么要指定调用AIDL服务的ID,就是要告诉外界MyService这个类能够被别的进程访问,只要别的进程知道这个ID,正是有了这个ID,B工程才能找到A工程实现通信。
说明:AIDL并不需要权限
&&&&&&首先我们要将A工程中生成的RemoteService.java文件拷贝到B工程中,在bindService方法中绑定aidl服务
&&&&&&绑定AIDL服务就是将RemoteService的ID作为intent的action参数。
&&&&&&说明:如果我们单独将RemoteService.aidl文件放在一个包里,那个在我们将gen目录下的该包拷贝到B工程中。如果我们将RemoteService.aidl文件和我们的其他类存放在一起,那么我们在B工程中就要建立相应的包,以保证RmoteService.java文件的报名正确,我们不能修改RemoteService.java文件
&&&&&&&&&&&bindService(new Inten(&net.blogjava.mobile.aidlservice.RemoteService&), serviceConnection, Context.BIND_AUTO_CREATE);
&&&&&&&ServiceConnection的onServiceConnected(ComponentName name, IBinder service)方法中的service参数就是A工程中MyService类中继承了RemoteService.stub类的内部类的对象。
&Android采用RPC的方式来实现(remote procedure call)远程通信,并且Android通过接口定义语言AIDL来生成两个进程之间互相访问的代码。例如,你在Activity里的代码需要访问Service中的一个方法,那么就可以通过这种方法来实现了。
? 创建一个AIDL文件(参见代码)
? 实现AIDL文件生成的Java接口(参见代码)
? 将你的接口暴露给客户端
? 客户端调用
38·屏幕适配?
?最好可以通过权重(layout_weight)的方式来分配每个组件的大小,也可以通过具体的像素(dip)来确定大小。
尽量使用Relativelayout&&。
已知应用支持平台设备的分辨率,可以提供多个layout_320*480&&...
drawable-hdpi,drawable-mdpi,drawable-ldpi分别代表分辨率为480*800,360*480,240*360,&放置图片大小相差1.5倍
最后还需要在AndroidManifest.xml里添加下面一段,没有这一段自适应就不能实现:
&supports-screens
android:largeScreens=&true&
android:normalScreens=&true&
&&android:anyDensity&=&&true&/&
在&/application&标签和&/manifest&&标签之间添加上面那段代码。即可。
备注:三者的解析度不一样,就像你把电脑的分辨率调低,图片会变大一样,反之分辨率高,图片缩小
还可以通过.9.png实现图片的自适应
// 应用升级( 版本号升级 ) 或软件升级,数据库就会跟着升级
应用升级==版本号升级 &== 同时数据库也会 跟着升级
软件升级 == 同时数据库也会跟着升级
39·版本更新?数据库的更新?跨版本?
在清单文件更改版本号,上传更新的应用到平台,利用平台的更新提醒用户是否更新新版本。
数据库更新:
先更改版本号,在onupgress方法内判断版本号是否一致,不一致则更新数据库。
40·安卓自定义组件?
Android自定义组件有三种实现思路:
1) 继承某个现有组件,在其基础上添加额外功能,如继承Gallery实现CoverFlow效果
复合型组件定义:&继承某个Layout,实现复合组件自定义,如TextView和EditText组合实现登录注册组件
继承View,实现onDraw()方法,实现自己绘制组件,如翻页效果组件
41.listview分页加载的步骤
通常实现分页加载有两种方式,一种是在ListView底部设置一个按钮,用户点
击即加载。另一种是当用户滑动到底部时自动加载。
&&&&&&&&&&&在ListView底部设置一个按钮,用户点击即加载实现思路:
&&&&&&&&&&&// 加上底部View,注意要放在setAdapter方法前
&&&&&&ListView.addFooterView(moreView);
&&&&&&bt.setOnClickListener(new OnClickListener() {
&&&&&&@Override
&&&&&&public void onClick(View v) {
&&&&&&pg.setVisibility(View.VISIBLE);// 将进度条可见
&&&&&&bt.setVisibility(View.GONE);// 按钮不可见
&&&&&&handler.postDelayed(new Runnable() {
&&&&&&@Override
&&&&&&public void run() {
&&&&&&loadMoreDate();// 加载更多数据
&&&&&&bt.setVisibility(View.VISIBLE);
&&&&&&pg.setVisibility(View.GONE);
&&&&&&mSimpleAdapter.notifyDataSetChanged();// 通知listView刷新数据
&&&&&&}, 2000);
&&&&&&&&&&&当用户滑动到底部时自动加载实现思路: 实现OnScrollListener 接口重写
onScrollStateChanged 和onScroll方法,使用onscroll方法实现”滑动“后处理检查是否还有新的记录,如果有,添加记录到adapter, adapter调用 notifyDataSetChanged 更新数据;如果没有记录了,则不再加载数据。使用onScrollStateChanged可以检测是否滚到最后一行且停止滚动然后执行加载.
42.移动互联数据的交换格式
移动互联数据交互格式有XML和JSON
1.JSON和XML的数据可读性基本相同
2.JSON和XML同样拥有丰富的解析手段
3.JSON相对于XML来讲,数据的体积小
4.JSON与JavaScript的交互更加方便
5.JSON对数据的描述性比XML较差
6.JSON的速度要远远快于XML
43.xmpp的底层是怎样实现的?
socket,双广播,连接广播和通知光爆
44.Activity的启动模式(四种)
Standard、singleTop、singleTask、singleInstance
默认模式,可以不用写配置。在这个模式下,都会默认创建一个新的实例。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。
可以有多个实例,但是不允许多个相同Activity叠加。即,如果Activity在栈顶+的时候,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。
singleTask
只有一个实例。在同一个应用程序中启动他的时候,若Activity不存在,则会在当前task创建一个新的实例,若存在,则会把task中在其之上的其它Activity
destory掉并调用它的onNewIntent方法。
如果是在别的应用程序中启动它,则会新建一个task,并在该task中启动这个Activity,singleTask允许别的Activity与其在一个task中共存,也就是说,如果我在这个singleTask的实例中再打开新的Activity,这个新的Activity还是会在singleTask的实例的task中。
singleInstance
只有一个实例,并且这个实例独立运行在一个task中,这个task只有这个实例,不允许有别的Activity存在。
45.广播机制的作用 &&&????????
广播机制,本质上它就是一种组件间的通信方式,如果是两个组件位于不同的进程当中,那么可以用Binder机制来实现,如果两个组件是在同一个进程中,那么它们之间可以用来通信的方式就更多了,这样看来,广播机制似乎是多余的。然而,广播机制却是不可替代的,它和Binder机制不一样的地方在于,广播的发送者和接收者事先是不需要知道对方的存在的,这样带来的好处便是,系统的各个组件可以松耦合地组织在一起,这样系统就具有高度的可扩展性,容易与其它系统进行集成。&
实现思路:
&在第1步中,广播的接收者把广播接收器注册到ActivityManagerService中;在第2步中,广播的发送者同样是把广播发送到ActivityManagerService中,由ActivityManagerService去查找注册了这个广播的接收者,然后把广播分发给它们。&
&&&&&&&&在第2步的分发的过程,其实就是把这个广播转换成一个消息,然后放入到接收器所在的线程消息队列中去,最后就可以在消息循环中调用接收器的onReceive函数了。这里有一个要非常注意的地方是,由于ActivityManagerService把这个广播放进接收器所在的线程消息队列后,就返回了,它不关心这个消息什么时候会被处理,因此,对广播的处理是异步的,即调用sendBroadcast时,这个函数不会等待这个广播被处理完后才返回
实例连接:/view/b73dd968af1ffc4ffe47ac0c.html
46.图片轮播的实现思路
图片轮播是由viewpage和handler两者结合所实现的,
47.Sleep和wait的区别
1.这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object
2.最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可
以使用同步控制块或者方法。sleep不出让系统资源;wait是进入线程等待池
等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,
因为如果wait线程的运行资源不够,再出来也没用,要等待其他线程调用
notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS分配系
统资源。sleep(milliseconds)可以用时间指定使它自动唤醒过来,如果时间不到
只能调用interrupt()强行打断。
3.wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而
sleep可以在任何地方使用
4. Sleep需要捕获异常,而wait不需要
48.全局异常处理
(未捕获的异常处理程序)
&&& Android系统的“程序异常退出”,给应用的用户体验造成不良影响。为了捕获应用运行时异常并给出友好提示,便可继承类来处理。通过Thread.setDefaultUncaughtExceptionHandler()方法将异常处理类设置到线程上即可。
Demo下载地址:
49.静态变量合实例变量的区别
语法:静态变量前要加static来修饰,而实例变量前则不加;
程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量;静态变量不属于某个实例对象,而是属于类,所以也称为类变量,静态变量就会被分配空间,静态变量就可以被使用了。
50.listview失去焦点怎么处理
在listview子布局里面写,可以解决焦点失去的问题
android:descendantFocusability=&blocksDescendants&
51.什么是匿名内部类,在什么时候调用
&&&内部类:内部类可以是static的或者非static的,static内部类只能包含静态方法和静态类变量,只能访问外部类的静态元素,内部类可以实例化,多次使用。
匿名内部类:它只能使用一次,不区分static和非static。如果用到外部类的变量的话,必须是类变量或者实例变量,就是必须是类定义的变量,或者final的局部变量。匿名内部类如果是继承某个类的话是可以重写那个类的方法的,这个和普通内部类一样。
实现事件监听器的时候
用匿名内部类编码非常简洁,也容易读懂,不重复利用时使用。
52.android中asset和raw的区别;
*res/raw和assets的相同点:
1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。
*res/raw和assets的不同点:
1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹
*读取文件资源:
1.读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作
InputStream is = getResources().openRawResource(R.id.filename); &
//通过 资源id
直接打开raw
下的 流文件
2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作
AssetManager am =&&&
am = getAssets();&&
InputStream is = am.open(&filename&); &
通过 AssectManager 管理器 &来打开assect
下的流文件
53.什么是线程
}

我要回帖

更多关于 消消乐730关怎么过 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信