`
quanminchaoren
  • 浏览: 924515 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
Android OTA空中升级的文档不少。但是多是介绍原理的和分析代码的。原理我就不说了。这里记录一下我在项目中实现的工作,和问题总结。 工作流程:见附件图片     update.xml文件放在服务器上,当客户端请求的参数正确时,返回相应的信息。 update.xml的内容,根据需要可以添加;Md5需要校验下载后包的完整性。updatepath为实际的下载地址 至少需要如下字段: <ver>Android 3.2</ver> <md5>xxx</md5> <updatepath>http://x ...
20201,    "Cosmote",          "GR" 20205,    "Vodafone GR",      "GR" 20210,    "TELESTET",         "GR" 20404,    "Vodafone NL",      "NL" 20408,    "KPN",              "NL" 20412,    &qu ...
要求在产品中预装大量的第三方app,apk文件有600M多,加上相关资源文件,共计4G。 如何把如此多的文件在安装时内置到系统成了问题。解决方法有三:   1 在update.zip中实现复制。写updater-script 通过使用script 复制。见我的另一篇自定义updater-script的文章。   缺点:script脚本需要自己写,不能随make生成。   2 在update.zip中实现复制。在recovery.c中实现。   缺点:SDCARD fat对zip文件有大小限制。   3 在第一次系统启动后实现自动安装。缺点:太慢,大概需要30分。   ...
在make android系统后,会生成系统的img文件。 make otapackage 会生成sd卡用的全部系统升级包,有260M多。要生成增量升级包。需要按以下步骤。 mkdir ~ /OTA  source build/envsetup.sh; choosecom 1 1 7 eng make;make otapackage 先将编译生成的 out/target/product/msm8660_surf/obj/PACKAGING/target_files_intermediates/msm8660_surf-target_f ...
第一,在应用程序中有三个线程存在:主线程(随activity的声明周期启动销毁)、feed初始化线程(进入程序时只运行一次,用于加载相册初始信息)、feed监听线程(一直在跑,监听相册和相片的变更)。 第二,不考虑CacheService 启动的主要流程归纳如下: 1.首次进入程序Gallery调用onCreate,此时发送初始化消息进入消息队列;然后Gallery调用onResume,向下进入 GridLayer的onResume,如果此时Mediafeed对象没有进行初始化则什么也不干(第一次一般都是这样),否则调用Mediafeed 的onResume; 2.处理消息队列中的HA ...
此函数控制相册表格页、相片表格页、时间分类表格页的展示,非常重要。以下以相册表格页为例进行讲解,其他的就举一反三吧。准备输入参数 final GridDrawables drawables = mDrawables;         final DisplayList displayList = mDisplayLi ...
Android Gallery 3D 特效精华   一、布局 gallery3d 的界面生成和普通的应用程序不一样。普通程序一般一个界面就是一 个activity,布局用xml或代码都可以实现,界面切换是activity 的切换方式; 而 gallery3d没有用android 的UI 系统,而是用opengl 画出来的,即界面是在 同一个 activity 的,如主界面,缩略图界面,单张图片查看界面,标记界面等 都属于同一个activity。那么这界面布局不同的界面是如何组合到一起的呢? 分析代码,可以把它看成一个状态机: 1、标记模式             ...
显示单张图片相关的输入变量 int selectedSlotIndex = mSelectedSlot;         GridDrawables drawables = mDrawables;         GridCamera camera = mCamera;         DisplayItem[] displayItems = mDisplayItems;         int firstBufferedVisibleSlot = mBufferedVisibleRange.begin;         int lastBufferedVisib ...
一.去除embedded linux 的开机光标:  在内核的当前目录进入到drivers/video/console/fbcon.c 文件  将static void fb_flashcursor(void *private)   和 static void fbcon_cursor(struct vc_data *vc, int mode) 里的内容注释掉,使之变成空函数 二 、 Android 开机会出现3个画面: 1. Linux 系统启动,出现Linux小企鹅画面(reboot)(Android 1.5及以上版本已 ...
前两款android智能机开发过程中曾经遇到过在launcher主屏界面上建一个应用快捷图标,在横屏的状态下点击打开此应用,然后按返回键,很大概率上屏幕会刷新失败,显示半屏黑屏,是由于关闭当前activity时是横屏状态,关闭后返回到壁纸界面是竖屏,windowManagerService刷新处理问题。现将解决方案贴出来,望以后遇到此问题的同学借鉴:               boolean gone = win.mViewVisibility == View.GONE                     || !win.mRelayoutCalled              ...
前段时间解了个Bug:Android系统在低电时充电,StatusBar上的充电图标不会变化,始终显示的是同一个图标 当时没有来得及整理,现在补一下   电池电量信息是从BatteryService中通过Intent发送出去的,在上一篇有讲到 frameworks/base/services/java/com/android/server/BatteryService.java 其中函数update负责读具体信息并发送 208     private synchronized final void update() {     1、发送:Intent.ACTION_ ...
我用的是 Ralink 的网卡,所以 wifi 网卡的名字是 ra0,  在网上看了一些文章,要改很多地方。 不就是个网卡名字问题吗? 我有 驱动源码, 就直接在源码里把名字改成 mlan0 就得了。 在源码中找到注册网卡的 register_netdev 或者 register_netdevice 函数,直接在注册前把名字 给它改咯。。。   strcpy( pNetDev->name, "mlan0"); ret = register_netdev(pNetDev); 这样我们的网卡名字就成了 mlan0, 就不用那么麻烦去 改 android ...
什么是 WIFI WIFI 是一种无线连接技术,可用于 PC , PDA ,手机 等终端。 WIFI 的目的是改善基于 IEEE802.11 标准的无线网络产品之间的互通性,也就是说 WIFI 是基于 802.11 标准的,但 WIFI 不等同无线网络。   android 平台下的 WIFI 模块 简单介绍一下, WIFI 模块的
什么是AppWidget?AppWidget就是我们平常在桌面上见到的那种一个个的小窗口,利用这个小窗口可以给用户提供一些方便快捷的操作。本篇打算从以下几个点来介绍AppWidget:       1.如何创建一个简单的AppWidget       2.如何使得AppWidget与客户端程序交互 下面我们来创建一个简单的AppWidget 1、定义AppWidgetProviderInfor:在res/xml文件夹中定义一个名为 :example_appwidget_info.xml,这个名字随便取。它是提供AppWidget元数据;设置在桌面上显示的大小  ...
SurfaceFlinger对象建立过程示意   1 SurfaceSession的建立     客户端请求建立Surface时,首先在要与SurfaceFlinger建立一个Session,然后再Session上建立一个Connection 通过概念返回Bclient对象。WindowManagerService在添加第一个窗口前会检查SurfaceSession是否建立,如何没有建 立,将会新建立一个实例来代表与SurfaceFlinger的一个连接。 new SurfaceSession()@windowAddedLocked() @WindowManager ...
Global site tag (gtag.js) - Google Analytics