`
runfeel
  • 浏览: 936262 次
文章分类
社区版块
存档分类
最新评论

Jelly Bean在硬件上的带起

 
阅读更多


Jelly Bean的发布已经有几天了,上周我们尝试了下将其在我们的机器上带起,折腾了半天,总算是起来了,不过发现些问题,先总结一下.

  1. 重编openGL,错误一堆,主要是几个android_native_buffer接口相关的头文件,都找不到了
  2. LOG的打印换了,之前的LOGD,LOGE,现在要用ALOGD,ALOGE来输出了
  3. 之前写的HAL模块,放进去,基本上都会出现段错误,一个都不能运行
  4. openGL驱动引起的段错误,满屏满屏的滚

这几个问题:

  • openGL的编译问题,是因为google整理了他们的文件命名方式,现在那个头文件统一叫 ANativeObjectBase.h,放在 /frameworks/native 下了。
  • HAL的段错误问题,原因也是找到了,是HMI(HAL module Info)在各个HAL中,被定义成const型了,但在hardware.c的load函数中,会有
     hmi->dso = handle; 
    修改了只读变量,这在JB上会造成段错误而crash,但之前版本不会,应该是新增的编译选项引起的吧。
  • openGL的问题,需要厂商重新给驱动了,这没法把。JB的新增功能vsync,看其中很多工作是要hwcomposer来实现,看来一时半会这个搞不定。

初步带起,不用openGL,慢就慢点,先看看功能和其他地方。目前我禁用hardware openGL方法是:
系统BoardConfig中,将USE_HW_COMPOSER设为false,同时拦下harwareAccelerated的请求,用soft路子的skia实现。
如 frameworks/base/core/java/android/view/Window.java

 LocalWindowManager(WindowManager wm, boolean hardwareAccelerated) {
            super(wm, getCompatInfo(mContext));
           // mHardwareAccelerated = hardwareAccelerated ||
            //        SystemProperties.getBoolean(PROPERTY_HARDWARE_UI, false);
   mHardwareAccelerated = false;
        }


还有其他地方,可以搜下源码,将所有hardwareAccelerated 赋值的地方改成false就好。

将wallpaper去掉,老死掉,现阶段还不想看它,禁用方法:
修改 frameworks/base/core/res/res/values/config.xml

    <!-- True if WallpaperService is enabled -->
    <!-- Temporarily set to false until openGL is ready. -->
    <bool name="config_enableWallpaperService">false</bool>

完成后,编译固件,烧写,装几个apk:

游戏太卡,几乎玩不动。

JB上,调试功能接口又增加了一些:

分享到:
评论

相关推荐

    Android JellyBean 4.1.2 Frameworks源码

    11. **硬件抽象层(HAL)**:HAL在4.1.2中继续扮演着连接上层软件和底层硬件的角色,确保不同硬件平台上的兼容性。 12. **国际化与本地化**:JellyBean支持更多的语言和地区设置,开发者可以轻松地为全球用户提供本地...

    Jelly Bean AudioFlinger introduction

    综上所述,AudioFlinger在Jelly Bean版本中扮演了核心角色,通过其丰富的组件和功能,实现了高质量的音频处理和服务。对于希望深入了解Android音频系统的开发者而言,掌握AudioFlinger的工作原理和组成部分是非常...

    安卓Android源码——抖动窗口.zip

    5. **硬件加速**:在Jelly Bean中,硬件加速成为默认设置,适用于大多数应用,提高了图形渲染效率,降低了CPU负担。 6. **手势和触控反馈**:Android 4.1增强了手势识别和触控反馈机制,这些改进可能在源码中有所...

    Android.Application.Development.Cookbook.SourceCode:基于Android SDK v4.1(Jelly Bean)-Android app source code

    《Android Application Development Cookbook Source Code》是针对Android SDK v4.1(Jelly Bean)的一本实战书籍,提供了丰富的源代码示例,旨在帮助开发者深入理解Android应用开发,并掌握实际编程技巧。在这个...

    android 4.1.2源码

    首先,Android 4.1.2是Android发展历程中的一个重要里程碑,它在4.1(Jelly Bean)的基础上进行了优化和更新,主要提升了系统的性能和用户体验,特别是对动画和图形处理的改进,使得系统运行更加流畅。API Level 17...

    android4.1及2.3源代码下载地址.txt

    值得注意的是,由于源代码文件通常体积庞大,Jelly Bean的压缩包大小约为2.3GB,而Gingerbread的则更小,这反映了两个版本之间在功能和复杂性上的差异。在下载过程中,用户可能需要考虑网络带宽和存储空间的限制。 ...

    教你在电脑上运行安卓4.1 安卓4.1SDK安装教程.docx

    总结来说,要在电脑上运行安卓4.1,你需要下载和安装Android SDK,包括JDK,配置环境变量,下载Jelly Bean的系统映像,并创建一个AVD。完成这些步骤后,你就可以体验和开发基于安卓4.1的应用了。虽然过程可能有些...

    TI安卓系统开发手册

    开发者将学习如何从官方仓库获取Android JellyBean DevKit的源代码,然后在主机环境中编译这些源码,生成可以在AM335x平台上运行的Android系统映像。 5. Android调试器设置: 设置Android调试器是提高开发效率的...

    imageview 悬浮效果

    在Jelly Bean及更高版本中,开发者可以利用硬件加速功能,进一步优化这种悬浮动画的效果,提高用户体验。 总结一下,实现"imageview 悬浮效果"主要涉及以下几个步骤: 1. 使用`ObjectAnimator`或`ValueAnimator`为...

    基础电子中的Android 5.0最受期待的10项功能

     同时,Android用户现在仅仅可以尝试使用Android 4.0,新版Android在硬件兼容性方面存在很多的问题。 据传,Android 5.0 Jelly Bean将于今年春季发布,新系统主要面向上网本和平板设备。对于Android用户而言,新版...

    A820L 4.12 CWM

    【压缩包子文件的文件名称列表】"A820L_CWM_6.0.1.2_JB" 提供了关键信息:这可能是 CWM Recovery 的一个版本 6.0.1.2,专为 Pantech A820L 设备在 Android 4.1 (Jelly Bean) 系统上使用。"JB" 是 Jelly Bean 的缩写...

    N90四核SRK_4.1_20130524_ZZ

    1. **Android系统版本**: "4.1"指的是Android Jelly Bean,这是Google在2012年发布的Android操作系统的一个重大版本。它带来了许多性能提升和用户界面改进,包括更流畅的触控响应(Project Butter)、更智能的通知...

    android-16_r02.zip

    本篇将详细探讨Android 4.1.1,代号“果冻豆”(Jelly Bean),这是Google在2012年推出的一个重要版本,为用户带来了许多新特性、性能优化以及用户体验的提升。 一、系统特性 1. **Project Butter**: Android ...

    Android SDK (SDK Platforms)-android-17.zip

    在本例中,"android-17"指的是API级别17,对应的是Android 4.2 Jelly Bean。开发者可以针对这个特定的API级别进行开发,以确保应用能在运行相同或更高API级别的设备上正常运行。 三、Android 4.2 Jelly Bean ...

    android api 4.1 chm 英文版

    Android API 4.1,代号Jelly Bean,是Google在2012年推出的重要移动操作系统版本,它为开发者提供了更多的功能和优化,提升了用户体验。这个CHM(Compiled HTML Help)文件是Android 4.1开发文档的英文版,包含了...

    android4.1源码

    Android 4.1,也被称为Jelly Bean,是Google推出的一款重要的移动操作系统版本,它在Android 4.0(Ice Cream Sandwich)的基础上进行了许多优化和改进。这份源码提供了深入理解Android系统工作原理的机会,对于...

    高通设备助手

    Android是Jelly Bean还是KitKat还是Ice Cream Sandwiches?内存是512MB、1GB还是2GB?手机有没有Root? 电池状态还好吗?有多少电量?电池是不是温度太高了? 手机有哪些传感器,工作是否正常?传感器耗电量是多少?...

    libEGL_jb5

    因此,libEGL_jb5可能是指适用于Android Jelly Bean 4.1至4.3,或者是KitKat 4.4的特定优化版本,以确保在这些平台上良好的图形性能和兼容性。 5. **dll安装方法.txt**:这可能是一个包含详细步骤的文本文件,指导...

    ADT离线安装包大集合

    **Android Developer Tools (ADT)** 是一套专门为 Android 应用程序开发设计的集成开发环境 (IDE) 插件,它构建在 Eclipse 平台上。这个离线安装包大集合包含了不同版本的 ADT,从 ADT-14.0.0 到 ADT-20.0.1,以及一...

    P1000,4.2.2ROM

    Android 4.2.2,也被称为Jelly Bean,是Google在2012年发布的Android操作系统的一个更新版本。这个更新带来了多项性能提升、界面改进和新功能,比如锁屏小部件、键盘手势输入以及更强大的多用户支持等。 描述中提到...

Global site tag (gtag.js) - Google Analytics