没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
一个人能走多远,取决于他能看多远
Android
开发的一些重要知识点
单实例运行方法
我们都知道 平台没有任务管理器,而内部 维护者一个
来实现窗口显示和销毁,对于常规从快捷方式运行来看都是 可能会使
用 标记来打开一个新窗口,比如 !",所以考虑单
任务的实现方法比较简单,首先 #$ 纠正下大家一种错误的方法就是直接在
%&"'%( 的 ( 节点中加入
)(!*"+,-("",这句,其实这样将不会起到任何作用,
内部维护的历史栈作用于 ,我们必须在 节点中加入
)(!*"+,-("",这句才能保证单实例,当然一般均加在主程序
启动窗口的 。
#' 像素如何转为 设备独立像素
最近有网友问如何将 ' 像素转为 独立设备像素,由于 的设备分辨率众多,
目前主流的为 .-,而很多老的设备为 - 甚至低端的 /-,对于兼容性来说使用
无非是比较方便的,由于他和分辨率无关和屏幕的密度大小有关,所以推荐使用。
'+0102"345&166这里 开发网提示大家很多网友获取 "0密
度1的方法存在问题,从资源中获取的是静态定义的,一般为 4 对于 7 是正好的,
而对于 .- 这样的应该从 .*-" 中获取, 为 5
这里可以再补充一下 , 的知识
$ 中动态改变 %-"". 大小
很多网友可能发现在 (!'%( 文件中定义了 %-"". 的绝对大小后,无法动态修
改以后的大小显示,其实 平台在设计 8 控件时考虑到这个问题,为了适应不同
的 9.:(" 可以通过在 '%( 的相关 %-"". 中加入 )(""+,;<,
这行即可,但因为使用了缩放可能会造成当前 8 有所变形。使用的前提是限制
%-"". 所在的层,可以使用一个内嵌的方法限制显示。
=如何判断 手机当前是否联网>
如果拟开发一个网络应用的程序,首先考虑是否接入网络,在 手机中判断是否联
网可以通过 "*-"类的 (:("01方法判断,首先获取网络通讯类
的实例 "*-"
.?*-"+0"*-"1-""%""0"'@
A1B,使用 .?*-"-""".&01(:("01B来返回是否
有效,如果为 !" 则表示当前 手机已经联网,可能是 或 CA、79C
等等,具体的可以通过 "*-"类的 -""".&01方法判断
详细的接入方式,需要注意的是有关调用需要加入D!"E"%
)%"+,"%@A ,FD6!"E
"%F这个权限, 开发网提醒大家在真机上 *" 和 G." 程序都
使用了这个方法,来判断是否继续,同时在一些网络超时的时候也可以检查下网络连接是
否存在,以免浪费手机上的电力资源。
59.:("、G%、 和 C 的关系
1
一个人能走多远,取决于他能看多远
很多网友刚刚开始学习 平台,对于 9.:("、G%、 和 C 它
们之间的概念不是很清楚,其实它们除了 9.:(" 外早在 ! 的 H#* 中就已经出现了,
但是在 平台中,G%、 相关的都有所变化。
首先让我们理解下 平台中的显示类是 ".,但是还提供了底层图形类
-,今天所说的这些均为 - 底层图形接口。
G%E称作位图,一般位图的文件格式后缀为 :%,当然编码器也有很多如
AG5I5、AGJJJ。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效
率低。我们理解为一种存储对象比较好。
9.:("E作为 平下通用的图形对象,它可以装载常用格式的图像,比如
、C、HC,当然也支持 G*C,当然还提供一些高级的可视化对象,比如渐变、图
形等。
E名为画布,我们可以看作是一种处理过程,使用各种方法来管理 G%、
或者 C 路径,同时它可以配合 *' 矩阵类给图像做旋转、缩放等操作,同时
类还提供了裁剪、选取等操作。
CE我们可以把它看做一个画图工具,比如画笔、画刷。他管理了每个画图工具的字体、
颜色、样式。
如果涉及一些 游戏开发、显示特效可以通过这些底层图形类来高效实现自己的应
用。
I 切换导致的 "" 重复执行
部分网友会发现 在切换到后台或布局从横屏 9C 切换到 C@AA,
会重新切换 会触发一次 "" 方法,我们可以在 %&"'%( 中
的 元素加入这个属性 );--"+,"K
":7",即可,比如
D)%"+,#$,
android:congChanges="orientation|keyboardHidden"
)(:"(+,L-6%",F
同时在 的 H 文件中重载 ;-!-"0;-!
".;-1这个方法,这样就不会在布局切换或窗口切换时重载 "" 等方法。代
码如下)
L@""
!:(;-!-"0;-!".;-1
M
!";-!-"0".;-1B
&0-"A"!"01-";-!01"++
;-!@A@9C1
M
66(
N
"("&0-"A"!"01-";-!01"++
;-!@A@C@AA1
M
2
一个人能走多远,取决于他能看多远
66
N
N
O 的 %-"G! 问题
很多网友对 提供的 %-"G! 有个疑问,当显示 9.:(" 图片时就不会再
显示文字了,其实解决的方法有两种,第一种就是图片中就写入文字,但是这样解决会增
加程序体积,同时硬编码方式会影响多国语言的发布。第二种解决方法很简单,通过分析
可以看到 %-"G! 的 (!,我们可以直接直接继承,添加一个 "'".,对齐
方式为右侧即可实现 %-"G! 支持文字右侧显示。
J 代码优化技术
H 内存控制
对于字符串操作而言如果需要连加这样的操作建议使用 -G!(",经过调试不难发
现如果你的字符串每次连加,使用 - 需要的内存开销会远大于 -G!(",然后
手机常规的运行内存大约在 #J*G 左右,对于运行多任务就需要考虑了,
开发网 提示因为 H 有 不需要手动释放那么分配的时候就要格外的小心,频
繁的 操作仍然是很影响性能的,在调试时我们可以通过 (- 查看内存释放情况。
#循环使用
平时在访问一个属性的时候效率远比一个固定变量低,如果你的循环估计次数常常大于
5,假设 '''""-01方法的值一般大于 5,推荐这样写,比如
&0+4BD'''""-01B331
这里 '''""- 在每次循环都要调用,必然会影响程序效率,在游戏开发中显得更
为明显,改进的方法应该为
?+'''""-01
&0+4BD?B331
$图片的优化
在 平台中 # 维图像处理库 G% 做的比较智能,为了减少文件体积和
效率,常常不用很多资源文件,而把很多小图片放在一个图片中,有切片的方式来完成,
在 H#* 中我们这样是为了将少文件头而解决 *9C 这些设备的问题,而 中虽然
机型硬件配置都比较高,有关 硬件配置可以参考
手机参数以及评测 ,但
是当资源多时这样的运行效率还是令人满意的,至少 9( 优化的还不是很够。
P 开发进阶之 @ 非阻塞包0一1
对于 的网络通讯性能的提高,我们可以使用 H 上高性能的 @0".6@1技
术进行处理,@ 是从 H9 = 开始引入的,@ 的 我们可以理解为 :(- 即非
阻塞的意思,相对应传统的 6@,比如 " 的 "01、"01这些方法而言都是阻
塞的。
@ 主要使用了 "( 和 "(" 来实现,H 的 "(" 类似 的
"(" 模式,是一种基于事件驱动的,整个处理方法使用了轮训的状态机,如果你过去开
发过 %: 应用的话这种方式有点像活动对象,好处就是单线程更节省系统开销,
@ 的好处可以很好的处理并发,对于 网游开发来说比较关键,对于多点
" 连接而言使用 @ 可以大大减少线程使用,降低了线程死锁的概率,毕竟手机游
3
一个人能走多远,取决于他能看多远
戏有 8 线程,音乐线程,网络线程,管理的难度可想而知,同时 6@ 这种低速设备将影响
游戏的体验。
@ 作为一种中高负载的 6@ 模型,相对于传统的 G@0G(-6@1来说有了很大的提
高,处理并发不用太多的线程,省去了创建销毁的时间,如果线程过多调度是问题,同时
很多线程可能处于空闲状态,大大浪费了 C8 时间,同时过多的线程可能是性能大幅下降,
一般的解决方案中可能使用线程池来管理调度但这种方法治标不治本。使用 @ 可以使并
发的效率大大提高。当然 @ 和 H9 O 中的 @ 还存在一些区别,@ 作为一种更新的当
然这是对于 H 而言,如果你开发过 服务器,那么 @C 这样的 6@ 完成端口
可以解决更高级的负载,当然了今天 #$ 主要给大家讲解下为什么使用 @ 在
中有哪些用处。
@ 我们分为几个类型分别描述,作为 H 的特性之一,我们需要了解一些新的概念,比
如 G"G!Q" 类,"(,""(,""""(,"(" 和
"(" "。有关具体的使用, 开发网将在明天详细讲解。网友可以在
9 文档中看下 ? 和 ?"( 两个包了解。
)66...#$%6&6IP5%(
了解下这种技术,看看在马上要做的项目中是否用得到
4"%" 和 (" 内部定义解析
昨天我们讲到的有关在 *&"'%( 中定义 的 "%" 方法来实现无标
题的方法,在使用
'%(
让你的
无标题方法 一文中讲到的,很多网友不明白为什
么这样做,其实在 #$ 以前的文章中多次提到了 (" 样式定义方法,今天
开发网再次把一些网友回顾了解下 样式的内部定义。在一个工程的
"6(!"6"%"'%( 中我们可以方便的定义自己的风格主题,比如下面的 .?"%"
中我们使用了基于 内部的白色调的背景 "%"-,设置 ..("
为 !" 代表没有标题,背景颜色我们使用了 内部定义的透明,同时设置
(". 控件的样式为 .?".,'%( 样式代码如下)
D>'%("+,4,"-+,!&EJ,>F
D"!"F
D("%"+,.?"%","+,)"%"-,F
D"%%"+,)..(",F!"D6"%F
D"%
%"+,)..G-!,FL)(6"D6"%F
D"%%"+,)(".(",FL("6.?".D6"%F
D6("F
有关 ". 控件我们自定义的风格就是修改下系统 (". 这个控件的每行分隔符样
式,这里我们在工程下 "6.:(" 文件夹下放一个图片名为 ("(" 图片,这样
我们的 .?". 的代码可以这样写
D("%"+,.?".,"+,L)("6-"".,F
D"%%"+,)("(",FL.:("6("("D6"%F
D6("F
D6"!"F
4
一个人能走多远,取决于他能看多远
通过定义 (" 可以设置更多,比如让 .?". 的字体颜色就加入 "'""
属性,比如 D"%
%"+,"'"",FL)("6"'""D6"%F等等。
H@ 解析示例代码
来自 -(" 官方的有关 平台的 H@ 解析示例,如果远程服务器使用了 ? 而
不是 '%( 的数据提供,在 平台上已经内置的 -? 包可以很方便的实现手机
客户端的解析处理。下面 #$ 一起分析下这个例子,帮助 开发者需要有
关 7C 通讯、正则表达式、H@ 解析、-" 开发的一些知识。
!:((-""'"AppWidgetProvider M66-"
L@""
!:(8"0"'"'R-"*-"
-"*-"R
ST-"1M
"'""0"."0"'R8"""(11B66避免 A,所
以 -" 中开了个服务
N
!:((8""""'"""M
L@""
!:(0""R1M
66G!(".-"!"&
A"%"".!"".+:!(8"01B
%"%"-"+".%"%"0R
-"(1B
-"*-"%-"+-"*-"-""01B
%-"!"-"0-"R!"".1B
N
!:(A"%"".:!(8"0"'"'1M
66C!%%"&%"!"
A"!""+"'-"A"!"01B
-ST%%"+"-"-0A%%"1B
%"+".%"01B
".01B
--"%"+"-"-0A-"%(".("R
%%"S%TR%91B
A"%"".!"".+!((B
--""+,,B
M
%("7"("""8"-"0"'1B
-""+%("7"("-"C-""0-"%"R&("1B
N0'""1M
-"0,-",R,!(UC,R"1B
5
剩余55页未读,继续阅读
资源评论
- vrgfr_20122013-11-12安卓的基础知识很全面
- 万晓强2015-12-09很好很实用
- lobswy2013-08-30不错的,总结了大部分的Android基础知识!
- franksec2014-08-11总结得非常不错!看了很有收获。 适合面试准备使用。
Ant_scy
- 粉丝: 1
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功