㈠ 请介绍下android中常用的五种布局,分别的布局方式。谢谢!急
LinearLayout,线性布局
RelativeLayout,相对布局
AbsoluteLayout,绝对布局
FrameLayout,帧布局
TableLayout,表格布局
BorderLayout,
BoxLayout,
CardLayout,
DefaultMenuLayout,
FlowLayout,
GridBagLayout,
GridLayout,
GroupLayout
swing里常用的也有这些,至于每个具体的功能你自己查一下API就可以了。
1、Java初步
Java是由sun公司开发的一种新型的面向物件的程式设计语言,主要用于web页面的设计。
Java语言的发展颇具传奇性,它与Inter的的迅猛发展是分不开的。由于其发展迅速,有人将它比喻为Inter上的世界语。前面讲到在Inter上Web页面的设计采用的是HTML语言,使用者借助于Web浏览器(如Netscape,HotJava,IE等),可以访问到远端web服务器上静态的、具有超连结的Web页面。Java语言的出现改变了 Web页面的这种传统的静态模式,通过在Web页面中附加一些利用Java编写的App1et(称为小程式),可饥型以使Web页面更具多样蠢空性和变化性,这样使用者就能够访问到动态的,具有互动功能的web页面。
例如一些小的动画,实时更新的图表、声音等。总之,Web页面的设计主要采用HTML语言,利用Java则使其锦上添花。
Sun公司于1995年5月正式推出Java语言,由于其简单、高效、可移植性强等特点,一经推出,很快引起广大使用者和众多厂商的普遍关注,特别是Sum公司将其定位于Inter的应用开发上,使得Java得以迅速发展。在同期推出的还有被称为HotJava(热咖啡)的浏览器,Hotjava是一个完全由Java语言编写,基于Java典型应用的web浏览器,并且第一个支援Java Applet。HotJava充分展示了Java在全球Inter网上的强大威力,同时也为Java语言程式设计提供了一个理想的执行平台。
Java语言推出后,各大软体厂商相继宣布支援Java。首先是Netscape公司在其Web浏览器(Netscape Navigator2.0)中支援Java,不久,sun,SGI和Macromedia三家公司制定了基于Java的开放式多媒体标准。后来许多公司,如IBM,Microsoft,Orac1e等,都宣布支援Java。Netscape公司进一步与sun公司合作,推出了类似于Java的JavaScript语言。目前,Sun公司已成立了专门的Javasoft分部,负责管理Java语言的开发、维护工作(可从Http:Javasoft,站点了解详细资讯)。
对于Java这一名字,较为流行的说法是它来源于印度尼西亚的一个重要岛屿,该岛屿的中文译名为"爪哇",岛上盛产咖啡,于是sun公司的开发人员将这种新语言起名为Java,寓意是使其与热气腾腾的咖啡联络起来,将它奉献给全球的计算机使用者。
2、Java语言的特点
Java语言的流行除了因为它能够编制嵌入HTML档案中的Applet外,还在于Java语言本身的面向物件、简单、平台无关性、安全性、多执行绪等特点。Java语言的结构与编写方式,与c++语言类似,因此学习Java语言,不仅要了解Java语言独有的程式设计特点,同时还要有程式设计基础和面向物件的概念。 <BR>Java语言的主要特点如下:
(1)简单、高效
Java语言与C++类似,如果使用者了解C++和面向物件的概念,就可以很快编写出Java程式;此外,Java又不同于诸如C++语言提供的各种各样的方法,它只提供了基本的方法,这样就减少了程式设计的复杂性,例如去掉了标头档案、指标变数、结构、运算子过载、多重继承等复杂特性。Java语言虽然简单,却很高效,它可以用面向物件的方法来描述使用者的每一个动作。
(2)面向物件
Java语言是一种新的面向物件的程式设计语言,它除了几种基本的资料型别外,大都是类似c++中的物件和方法,程式程式码大多体现了类机制,以类的形式带肢瞎组织,由类来定义物件的各种行为。Java同样支援类继承,这样也减少了程式设计的复杂性。
(3)平台无关性 Java语言经编译后生成与计算机硬体结构无关的位元组程式码(Bytecode),这些位元组程式码被定义为不依赖任何硬体平台和作业系统。当Java程式在执行时,需要由一个解释程式对生成的位元组程式码解释执行。这体现了Java语言的与平台无关性,使得Java程式可以在任何平台上执行,如MS-DOS,Windows,Unix等,因此具有很强的移植性。
(4)互动式特性
Java是面向物件的网路程式语言,由于它支援TCP/IP协议,使得使用者可以通过浏览器访问到Inter上的各种动态物件。并且在网路上使用者可以互动式地进行各种动作,而多执行绪技术的引入使得这种互动式操作更为容易。
(5)多执行绪机制
Java语言支援多执行绪机制,多执行绪机制使得Java程式能够并行处理多项任务。Java程式可以设计成具有多个执行绪,例如让一个执行绪负责资料的检索、查寻,另一个执行绪与使用者进行互动,这样,两个执行绪得以并行执行。多执行绪机制可以很容易地实现网路上的互动式操作。
(6)动态的记忆体管理机制
Java语言采用了自动垃圾回收机制进行记忆体的管理。在C++语言中,程式设计师在编写程式时要仔细地处理记忆体的使用,例如当某个记忆体快使用完毕时,要及时释放,以供其它程式使用,一旦记忆体管理不当,就有可能造成记忆体空间浪费或程式执行故障。 <BR>在Java系统中包括了一个自动垃圾回收程式,它可以自动、安全地回收不再使用的记忆体块,这样,程式设计师在程式设计时就无需担心记忆体的管理问题,从而使Java程式的编写变得简单,同时也减少了记忆体管理方面出错的可能性。
(7)安全性
在类似Inter的这种分散式网路环境中,安全性是个不容忽视的问题。Java语言在安全性方面引入了实时记忆体分配及布局来防止程式设计师直接修改实体记忆体布局;通过位元组程式码验证器对位元组程式码的检验,以防止网路病毒及其它非法程式码侵入。此外,Java语言还采用了许多面向物件的异常处理机制,负责对一些异常事件进行处理,如记忆体空间不够,程式异常中止等的处理。 <BR>以上介绍了Java语言的一些主要特点,除此之外它还具有动态性、类库丰富、高效能等特点,这些都使得Java语言在各个方面得以成熟和完善,成为大众日益青睐的程式设计语言之一。
3、Java应用程式和Java AppletJava语言是一种面向物件的程式设计语言,利用Java语言,能够编写出两大类程式:Java应用程式(Application)和Java App1et(小程式):
Java应用程式是由Java语言编写,在经过编译和解释后,可以独立执行在MS-DOS,UNIX等操作平台上。Java应用程式一般以命令列方式执行。
Java Applet是不能独立执行的,App1et必须嵌入到HTML档案中,并且需要启动浏览器才能执行。这样,指定的Applet会自动下载到使用者的浏览器中执行,从而产生一些特殊的页面效果,如动画、声音、图表、影象等。通过在Web页面中嵌入Applet,可以使Web页面与使用者之间进行动态互动,例如接收使用者的输入,然后根据使用者的需要产生不同的响应。
就Java Applet而言,它是嵌入到HTML档案中的,HTML档案呈现的内容大多为文字、图片、表格、声音等,但这些内容一般都是静态的、二维的。但当HTML档案中嵌有 Applet后,整个页面会呈现出多样性和变化性,例如互动功能、图表等。在运用方面Java语言和HTML语言的区别在于:
(1)HTML语言属于一种简单的标记语言,一般使用者均可在数小时内学会如何编写HTML档案。而Java语言的结构和编写方法更类似于c++,所以学习Java语言要有程式设计的基础和面向物件的概念。
(2)Web页面的编写主要采用HTML语言,但若想使页面更具变化性、多样性、互动性,可采用Java语言来达到这种效果,起到锦上添花的作用。
4、在HTML档案中嵌入Applet</FONT> <BR>Applet是Java在Inter的中的一个重要应用,同时它的出现也促使了Java成为日益流行的程式设计语言。Applet是指由Java语言编写的,被嵌入到Web页面中,并通过浏览器执行以产生特殊页面效果的小程式。嵌入了Applet的Web页面看上去会更加丰富多彩,具有动态互动能力。
在Inter上拥有大量的App1et,这些Applet大都是由Sun等公司的Java开发人员设计出来的,对于广大使用者,特别是初学者,可以将这些App1et下载到自己的计算机中,井通过将这些下载下来的App1et嵌入到自己的Web页面中来,获得自己具有相同效果的Web页面,以丰富自己的页面内容。
Android的常见布局方法:线性布局、表格布局、相对布局、帧布局和巢状布局;
好的,纠结了几天了,换了各种版本的eclipse,那什么版本以下预设的是线性布局的呢 检视原帖>>
线性布局LinearLayout 表格布局TableLayout 帧布局Framelayout 相对布局RelativeLayout 绝对布局AbsoluteLayout
android4.0版本后新增的GridLayout
你在网络搜索 “css+div的布局方式,比table的布局方式” 就会有很多关于这个问题答案,你可以看看,虽然都有优缺点,但是建议还是改用div+css吧,table已经过时了
:codesky./article/201008/139693.
希望可以帮到你
KIKC自2013年创立以来,在几年内已经扩张600多个店铺,预计将在2018年实现1000个店铺的全面布局,其发展速度堪称业界奇迹。
借用网络一句话:响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够相容多个终端——而不是为每个终端做一个特定的版本。这个概念是为解决移动网际网路浏览而诞生的。
响应式布局就是可以,适应多种装置的网页,比如电脑端和移动端 可以共用同一套CSS。不需要为单独的装置而开发相应程式
浮动布局,定位布局以及响应式布局,这三种布局是最基本最常见的,此外比较特殊的是弹性布局,弹性布局相对使用较少,需要根据专案的具体情况而定。
在网站开发当中,通常是需要结合多种布局去实现网页布局的。如果是在学习网页布局的相关知识,可以弄本 HTML5布局之路 ,来辅助自己的学习
㈡ Android性能优化总结
常用的Android性能优化方法:
一、布局优化:
1)尽量减少布局文件的层级。
层级少了,绘制的工作量也就少了,性能自然提高。
2)布局重用 <include标签>
3)按需加载:使用ViewStub,它继承自View,一种轻量级控件,本身不参与任何的布局和绘制过程。他的layout参数里添加一个替换的布局文件,当它通过setVisibility或者inflate方法加载后,它就会被内部布局替换掉。
二、绘制优化:
基于onDraw会被调用多次,该方法内要避免两类操作:
1)创建新的局部对象,导致大量垃圾对象的产生,从而导致频繁的gc,降低程序的执行效率。
2)不要做耗时操作,抢CPU时间片,造成绘制很卡不流畅。
三、内存泄漏优化:
1)静态变量导致内存泄漏 比较明显
2)单例模式导致的内存泄漏 单例无法被垃圾回收,它持有的任何对象的引用都会导致该对象不会被gc。
3)属性动画导致内存泄漏 无限循环动画,在activity中播放,但是onDestroy时没有停止的话,动画会一直播放下去,view被动画持有,activity又被view持有,导致activity无法被回收。
四、响应速度优化:
1)避免在主线程做耗时操作 包括四大组件,因为四大组件都是运行在主线程的。
2)把一些创建大量对象等的初始化工作放在页面回到前台之后,而不应该放到创建的时候。
五、ListView的优化:
1)使用convertView,走listView子View回收的一套:RecycleBin 机制
主要是维护了两个数组,一个是mActiveViews,当前可见的view,一个是mScrapViews,当前不可见的view。当触摸ListView并向上滑动时,ListView上部的一些OnScreen的View位置上移,并移除了ListView的屏幕范围,此时这些OnScreen的View就变得不可见了,不可见的View叫做OffScreen的View,即这些View已经不在屏幕可见范围内了,也可以叫做ScrapView,Scrap表示废弃的意思,ScrapView的意思是这些OffScreen的View不再处于可以交互的Active状态了。ListView会把那些ScrapView(即OffScreen的View)删除,这样就不用绘制这些本来就不可见的View了,同时,ListView会把这些删除的ScrapView放入到RecycleBin中存起来,就像把暂时无用的资源放到回收站一样。
当ListView的底部需要显示新的View的时候,会从RecycleBin中取出一个ScrapView,将其作为convertView参数传递给Adapter的getView方法,从而达到View复用的目的,这样就不必在Adapter的getView方法中执行LayoutInflater.inflate()方法了。
RecycleBin中有两个重要的View数组,分别是mActiveViews和mScrapViews。这两个数组中所存储的View都是用来复用的,只不过mActiveViews中存储的是OnScreen的View,这些View很有可能被直接复用;而mScrapViews中存储的是OffScreen的View,这些View主要是用来间接复用的。
2)使用ViewHolder避免重复地findViewById
3)快速滑动不适合做大量异步任务,结合滑动监听,等滑动结束之后加载当前显示在屏幕范围的内容。
4)getView中避免做耗时操作,主要针对图片:ImageLoader来处理(原理:三级缓存)
5)对于一个列表,如果刷新数据只是某一个item的数据,可以使用局部刷新,在列表数据量比较大的情况下,节省不少性能开销。
六、Bitmap优化:
1)减少内存开支:图片过大,超过控件需要的大小的情况下,不要直接加载原图,而是对图片进行尺寸压缩,方式是BitmapFactroy.Options 采样,inSampleSize 转成需要的尺寸的图片。
2)减少流量开销:对图片进行质量压缩,再上传服务器。图片有三种存在形式:硬盘上时是file,网络传输时是stream,内存中是stream或bitmap,所谓的质量压缩,它其实只能实现对file的影响,你可以把一个file转成bitmap再转成file,或者直接将一个bitmap转成file时,这个最终的file是被压缩过的,但是中间的bitmap并没有被压缩。bitmap.compress(Bitmap.CompressFormat.PNG,100,bos);
七、线程优化:
使用线程池。为什么要用线程池?
1、从“为每个任务分配一个线程”转换到“在线程池中执行任务”
2、通过重用现有的线程而不是创建新线程,可以处理多个请求在创建销毁过程中产生的巨大开销
3、当使用线程池时,在请求到来时间 ,不用等待系统重新创建新的线程,而是直接复用线程池中的线程,这样可以提高响应性。
4、通过和适当调整线程池的大小 ,可以创建足够多的线程以使处理器能够保持忙碌状态,同时还可以防止过多线程相互竞争资源而使应用程序耗尽内存或者失败。
5、一个App里面所有的任务都放在线程池中执行后,可以统一管理 ,当应用退出时,可以把程序中所有的线程统一关闭,避免了内存和CPU的消耗。
6、如果这个任务是一个循环调度任务,你则必须在这个界面onDetach方法把这个任务给cancel掉,如果是一个普通任务则可cancel,可不cancel,但是最好cancel
7、整个APP的总开关会在应用退出的时间把整个线程池全部关闭。
八、一些性能优化建议:
1)避免创建过多对象,造成频繁的gc
2)不要过多使用枚举,枚举占用的空间比整型大很多
3)字符串的拼接使用StringBuffer、StringBuilder来替代直接使用String,因为使用String会创建多个String对象,参考第一条。
4)适当使用软引用,(弱引用就不太推荐了)
5)使用内存缓存和磁盘缓存。
㈢ 安卓系统有什么方法可以优化操作教程
很多人反映安卓系统手机用久了会卡,一些人就选择刷机了,那么除了刷机还有没有什么方法优化系统呢?下面由我为你整理了安卓手机如何进行优化系统的相关方法,希望对你有帮助!
安卓手机优化系统方法如下
安卓刷机
系统这一块绝对是有着举足轻重的地位,一款好的系统能让安卓手机脱胎换骨。而从Android 4.1开始,Android的流畅性可以说有了质的飞跃。Android 4.1的触控感觉非常好,这主要归功于Android 4.1的帧速度提高到了60fps,而且在触控延迟上有更加优秀的表现。因此只要情况允许,建议所有Android手机都刷到4.1以上,这种体验绝对是以往使用4.0甚至2.3系统都不可想象的。当然,对于大部分Android手机来说,4.1还是遥不可及,只有通过第三方ROM才能达到品尝“果冻豆”的目的,这里就要特别注意第三方ROM的稳定性问题。
如果不能刷Android 4.1,那还可以选择一些第三方ROM例如原生系统AOKP或者CM系列。由于系统非常精简,这些第三方ROM也会带来流畅度的提升,当然要放弃的是官方ROM的各种自带软体和UI,这就要看使用者的取舍了。
更换核心
Android手机的核心Kernel对手机流畅性也是有很大的影响,核心直接影响CPU的执行效率、频率变化。说到刷核心就不能不提超频,一些第三方核心支援CPU的超频,CPU频率提高了流畅度当然会有变化,当然这里也要特别注意温度和电压的控制。
已经有提及过,很多手机预设是标准模式甚至是省电模式,这对效能是有不少影响的,因此建议不是有特别需求还是调至效能模式位置:系统设定,因不同手机而异。
关闭动画特效
这是一个Android 4.0才开始有的设定选项,Android 4.0有两项视窗动画缩放以及过渡动画缩放,Android 4.1增加了动画程式时长调整。有人说Android的动画比较卡,没有iPhone顺滑,有这选项可好,你说动画不顺嘛,我关掉还不行吗?关闭了这些以后会感觉反应迅速了很多,但是牺牲了一定的视觉感受位置:设定→开发人员选项。
不保留活动
这个选项即把Android相对iPhone的其中一个很大的优势舍弃了,也就是我们常说的“多工”,Android现在的高阶机动不动就四核、2G RAM,如果只跑一个软体,可想而知流畅度会非常高,但是这里并不建议使用这种方法提升流畅度,没有多工的Android更像一只三脚猫,如果只是体验一下那种感觉也无妨位置:设定→开发人员选项。
借助第三方软体优化
实际上很多Android卡顿的罪魁祸首就是系统的启动器,现在一些品牌的手机启动器做得越来越炫丽,也越来越复杂,当然代价就是占用RAM和ROM更多,如果不是对这方面特别有要求,完全可以替换一些第三方的启动器,例如Apex、NOVA等,它们带来的流畅度提升也是非常明显的这里使用NOVA作介绍。
解除安装系统自带程式
现在越来越多官方系统自带很多恼人的程式,而且不能解除安装,这些软体往往都会开机自启动,对系统流畅度影响比较大,但是要删除这些自带软体需要获取root许可权。通用一些第三方ROM也会有自带垃圾软体问题,而大部分第三方ROM都自带root,所以这个相对好解决。这里删除程式也要特别注意,不要错删一些系统软体,否则后果很严重这里使用的是“力卓工具箱”。
建议:解除安装一些不常用的桌面外挂、系统强制安装的第三方软体等
管理开机自启动项
这方面在之前的省电专题中也有提到过,减少开机自启动的软体,除了能节省电量之外,当然还能提升手机的反应速度,当然这里也不能一下把所有软体都关闭,关闭一些不需要自启动的第三方软体就可以达到目的了,如果不小心把系统本身的程式禁用了就会比较麻烦这里使用的是“力卓工具箱”。