当前位置:  编程技术>移动开发
本页文章导读:
    ▪StatusBar 图标展示流程        StatusBar 图标显示流程 StatusBar 图标显示流程  (2010-11-05 15:23:29)转载分类: Android学习公司前些天发现一个状态栏显示图标不正确的Bug,昨天也转给我,看我能帮上什么忙,我对状态栏完全没有.........
    ▪ 状态栏(StatusBar)镜头布局分析        状态栏(StatusBar)画面布局分析 状态栏(StatusBar)画面布局分析  (2010-12-16 09:52:20) 转载 标签:  状态栏   进行   截图   文件夹   图片类   it 分类: Android学习 1、状态栏的资源位置: .........
    ▪ git完代码后的异常       git完代码后的错误 在使用:$ repo init -u git://Android.git.kernel.org/platform/manifest.git$ repo sync下载完代码后,进行make,$cd ~/mydroid$make却出现了如下错误:build/core/main.mk:73: You are attempting to build on a.........

[1]StatusBar 图标展示流程
    来源: 互联网  发布时间: 2014-02-18
StatusBar 图标显示流程
StatusBar 图标显示流程  (2010-11-05 15:23:29)转载
分类: Android学习
公司前些天发现一个状态栏显示图标不正确的Bug,昨天也转给我,看我能帮上什么忙,我对状态栏完全没有接触,正好趁这个机会,粗略看了下相关的代码,记下来一些自己的理解。希望能对以后有些帮助。
由于同事的帮助,我不需要从头开始找起,我对StatusBar Service的理解是从StatusBarPolicy开始的。
--StatusBarPolicy--
    包含了所有在启动时安装在StatusBar上图标的策略。看了一下这个类的属性值,基本我们显示的图标信息都有定义,例如:时钟,电池电量,手机信号,蓝牙,Wifi,gps等。在类的内部有一个变量 mIntentReceiver,它是BroadcastReceiver类型。它接受各种Intent信息,然后调用本类的update*函数,对StatusBar的各种图标进行更新。它是如何更新的呢?原来在它的属性值中保存了StatusBarService 的引用mService!它对图标的更新都会转化为StatusBarService 对updateIcon等方法的调用。
总体来说StatusBarPolicy保存了图标的引用,根据各种策略计算出现在应该显示的图标,然后将图标的资源ID等信息进行封装后,传递给StatusBarService。
--StatusBarService--
在此服务中updateIcon 转化为对addPendingOp调用,这里需要注意addPendingOp 参数code,这个参数给出了具体执行的逻辑分支,并将我们的调用封装为了PendingOp类型,然后加到mQueue队列中,看到这里我立刻就想到去寻找Handler,果真在类中有一个成员变量H 为Handler类型; 现在在H 的handleMessage方法中寻找我们更新的code类型OP_UPDATE_ICON,在这种情况下会调用performAddUpdateIcon()。
   在performAddUpdateIcon类中会区分两种情况进行处理,一种是notification,一种是icon,从我们刚才哪个路径进来的函数if (n != null) 判断为false,不会走入,接着看icon分支。
    StatusBarIcon icon = mIconMap.get(key); 这个的意义是看Icon是否已经加在了StatusBar上了,如果icon ==null表明StatusBar没有相应图标需要增加,否则可能需要更新图标。具体将Icon增加到 StatusBar上的是这个语句: mStatusIcons.addView(icon.view, pos); Icon进行更新的是icon.update(mContext, data);

    
[2] 状态栏(StatusBar)镜头布局分析
    来源: 互联网  发布时间: 2014-02-18
状态栏(StatusBar)画面布局分析

状态栏(StatusBar)画面布局分析  (2010-12-16 09:52:20)
转载
标签:  状态栏   进行   截图   文件夹   图片类   it 分类: Android学习
1、状态栏的资源位置:
   frameworks/base/packages/SystemUI/res/
   其中:
    layout文件夹中是布局xml文件。
    drawable开头的文件夹是各种图片类资源。

2、状态栏未展开时的布局结构
    这个图主要分析了三种情况下的状态栏布局
一般情况下的布局,对应最上面的图片。
状态栏播放动画时的布局,对应中间的图片。
手指在状态栏上点击时的布局,对应最下面的图片。





3)状态栏展开时的布局
状态栏有“正在进行的”和“通知”时的布局
状态栏没有“正在进行的”和“通知”时的布局
          我们的截图,是“正在进行的”和“通知”时的布局,另外一个没截图是因为如果截图的话,需要连上电脑,但一连接上电脑后就会有“正在进行的”,所以无法截图,但是这个界面比较简单,就是将“正在进行的”标题,换成了“无通知”。




    
[3] git完代码后的异常
    来源: 互联网  发布时间: 2014-02-18
git完代码后的错误
在使用:
$ repo init -u git://Android.git.kernel.org/platform/manifest.git
$ repo sync
下载完代码后,进行make,
$cd ~/mydroid
$make
却出现了如下错误:
build/core/main.mk:73: You are attempting to build on a 32-bit system.
build/core/main.mk:74: Only 64-bit build environments are supported beyond froyo/2.2.
这是因为froyo/2.2默认只支持64-bit,看到有些网友还要去下载64-比他的操作系统,很是麻烦,于是通过不断搜索资料终于解决,

解决办法:
需要进行如下修改即可,

./external/clearsilver/cgi/Android.mk
./external/clearsilver/java-jni/Android.mk
./external/clearsilver/util/Android.mk
./external/clearsilver/cs/Android.mk
四个文件中的
LOCAL_CFLAGS += -m64
LOCAL_LDFLAGS += -m64
注释掉,或者将“64”换成“32”
LOCAL_CFLAGS += -m32
LOCAL_LDFLAGS += -m32

然后,将
./build/core/main.mk 中的
ifneq (64,$(findstring 64,$(build_arch)))
改为:
ifneq (i686,$(findstring i686,$(build_arch)))

OK!问题解决

如果对你有帮助,请留言

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
.net/c#/asp.net iis7站长之家
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3