自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Android跨平台移植经验之谈

原创:M_r_D转载请注明出处!Part 1    元旦休息,闲来无事,又暂无睡意,写点东西捣鼓捣鼓吧!学的东西多了,就怕忘记以前的知识,所以还是记下来比较好。正所谓,好记性不如烂笔头!目前做的一个项目是移植android4.2,所以刚好可以把移植的经验跟大家分享分享,共同进步。尽管界面还没启动起来,但相信到那一天应该不远了。    标题自称为跨平台移植,那么究竟怎样跨平台

2012-12-31 03:58:36 12299 40

转载 Android log的开关

系统中的程序中输出log一般是到/dev/log/下的三个设备中,可以用logcat查看。对于init运行的程序则有两种方法查看到log信息:1.添加/system/bin/logwrapper,可以用logcat查看,例如 service /system/bin/logwrapper /system/bin/rild2.添加console,像sh一样直接输出到console 

2014-04-09 10:35:16 3888

原创 android原生态音乐播放器中文歌曲乱码问题——没落的MIPS

基于android4.2,主要出现在mips架构,arm架构上没有此现象。猜测与MediaScanner有关,一直跟代码,跟啊跟,跟啊跟。跟到frameworks/base/media/jni/android_media_MediaScanner.cpp文件的handleStringTag函数,它的实现如下:119     virtual status_t handleStringTa

2014-03-26 15:33:04 2370

原创 Android 4.4 KitKat--Dalvik 2.0 (ART)

Google可能会在android4.2版本中推出ART(Android Runtime)来取代Dalvik虚拟机。根据Google android工程师的说法,ART的性能要比Dalvik好得多。不过,是否在KitKat版本中就搭配ART仍然不能确定。但是,依照google目前的计划来看,显然他们已经很少把精力投入到Dalvik的优化当中了,所以ART被推出的可能性非常大。这又将会是一项革新,暂

2013-11-11 11:59:18 2695 1

原创 TraceView issue

使用traceview时,遇到一个这样的问题:Exception in thread "main" java.lang.RuntimeException: Method exit (android/widget/AbsListView.startScrollIfNeeded (I)Z) does not match current method (java/lang/Math.abs (I

2013-07-30 15:25:21 6623

原创 修改android系统和watchdog的延时

适用于某些启动android需要很长时间或者系统资源紧缺的特定场合。1、修改watchdog和AMS的TIMEOUT时间#    modified:   services/java/com/android/server/Watchdog.java#    modified:   services/java/com/android/server/am/ActivityManagerS

2013-04-24 15:38:57 2316

原创 git创建和删除远程分支

1.创建本地分支git branch 分支名,例如:git branch tmp2.切换到本地分支git checkout 分支名,例如切换到分支tmp:git checkout tmp3.把本地分支推送到服务器,就变成了远程分支git push origin tmp4.删除远程分支在Git v1.7.0 之后,可以使用这种语法删除远程分支:

2013-04-24 15:15:23 1949

原创 关于Android JAR包的优化问题

1、把jar包优化成odex包:在编译脚本.mk里面定义"WITH_DEXPREOPT:=true"这样做,系统在第一次起来的速度比较快。开启了pre-dexopt的系统,jar有依赖性的优化,所以每次修改了java代码,都必须把out目录下的.odex文件清空,然后重编镜像。清空.odex文件可以进入out目录,执行:find -name "*.odex" | xargs rm

2013-04-12 14:48:01 6776 1

原创 Android系统服务

<!--body, div, table, thead, tbody, tfoot, tr, th, td, p {font-family:"Liberation Sans"; font-size:x-small}-->SystemServer中启动的服务服务类名称作用描述EntropyService提

2013-04-07 16:10:33 2708

转载 Android java调试又一好工具

定位framework中的问题,常常发现很多东西都是应用错误调用导致,通过打印堆栈能一定程度上提高定位的速度,但是调用栈遇到异步消息过程就无法很好的跟踪了,这个下面两个函数和一个log语句就非常有用了,如下:int pid = Binder.getCallingPid();int uid = Binder.getCallingUid();Log.e(TAG, "meth

2013-04-02 15:31:25 1801

原创 Android按键事件——上层与驱动的映射

原创:M_r_D转载请注明出处!    首先查看android对上层按键事件的定义,在头文件中:static const KeycodeLabel KEYCODES[] = { { "SOFT_LEFT", 1 }, { "SOFT_RIGHT", 2 }, { "HOME", 3 }, { "BACK", 4 }, { "CALL"

2013-03-18 13:14:39 6035 1

原创 Android4.2移植的debug之路——不明黑色光圈

Android 4.2的移植工作仍然进行中,目前遇到一个bug:在qemu上,android界面出来后,用鼠标点击屏幕时会有一个黑色的小光圈,这个光圈不会跟着鼠标移动,只有点击后再拖动它才会跟着动,如果我想启动某个应用程序,需要把该光圈拖到应用程序图标位置上,然后双击才能启动。上图:    一个让人措手不及的bug,从未见过,又找不到相关的资料,只能“始作俑者”了。这是驱动问题?还是a

2013-01-30 19:54:43 4514 9

转载 Android NDK安装及使用简介

Android NDK安装及使用简介什么是Android NDKAndroid 应用程序是运行在Dalvik虚拟机之上的。NDK可以让你用本地代码例如C/C++来实现应用程序的一部分。这样可以为应用程序的某些类在复用已有代码或提高性能方面提供便利。如果你的代码是用C/C++来实现的,你的应用程序仍然会被打包成.apk文件,并且仍然运行在虚拟机上。Android应用程序的模型是不变的

2013-01-16 16:40:49 1707

原创 Android系统开发小知识点

目的在于记录平时开发过程中遇到的一些知识点和小技巧!1、添加和获取系统属性(1)系统属性有两种:ADDITIONAL_BUILD_PROPERTIES   写入/system/build.prop文件ADDITIONAL_DEFAULT_PROPERTIES  写入default.prop文件(2)添加方法一般在build/core/main.mk中添加,以便在编译

2013-01-15 15:40:29 2286

转载 向Surface写位图数据的方法

向Surface写位图数据的方法Surface的Buffer准备好后,就可以向Buffer写位图数据,Surface的Buffer跟普通的图像数据一样,也是按一定格式组织的一根根的扫描线数据。下面的例子假设源和目的格式都是32位,并且大小不超标uint8_t *sbits;sbits = (uint8_t *)bitmap->getPixels();int

2012-12-28 10:19:51 1962

原创 悲催的调试ASTER与monkey的经验

刚工作不久,能力有限,经验也不足,志在工作中成长,与大家分享工作经验,有错误的地方请大家指出! 非常感谢!     ASTER是台湾0xlab开发的一款开源的自动化测试工具,该工具运行在PC机上,与android设备上的monkey进行通讯,通讯方式使用socket。当然,ASTER能与android设备通讯的前提是adb能正常工作。当ASTER与设备连接上后,会用ddms把设备的屏幕截取

2012-12-27 16:52:47 2752 6

原创 Android init进程分析

<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->同事整理的,直接贴上来,sorry!一、Android Init.c执行流程Android中的内核启动后,kernel会启动第一个用户级别的进程:init,它是一个由内核启动的用户级进程,它的进程号是1,它以一个守护进程的方式运行,主要提供

2012-12-27 12:59:55 2266

原创 一个测试surfaceflinger的小程序

程序放在Android4.2的源码目录中能编译通过,也可以执行。本人所期待的结果是在android模拟器的屏幕上显示一个圆,但是实际上什么都没有显示!问题出在哪里?我把程序贴上!求大侠赐教!Android.mk文件LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)uses-permission android:name="android

2012-12-27 12:54:10 3758 6

转载 普通应用使用Surface的方法

Android的NDK提供了Surface类,可供应用向屏幕绘图,但使用这个类,有很多机关,如果不注意,代码就不会正常工作。下面是我们使用的时候遇到的问题与解决方法。1,在C++代码里要使用Surface类,必须在APK的工程文件Android.mk里增加权限uses-permission android:name="android.permission.ACCESS_SU

2012-12-27 12:46:36 2162

转载 欺骗编译器取得ISurface对象的方法

欺骗编译器取得ISurface对象的方法我们在使用Android NDK的Surface的时候,遇到无法得到ISurface对象的问题,描述如下:Surface类的定义如下:class Surface: public EGLNativeBase{public:...private:// can't be copied...friend

2012-12-27 12:44:49 1297

转载 android opensource webs

linaro:https://wiki.linaro.org/BenjaminGaignard/ioncm:https://github.com/cyanogenmodqualcom: https://www.codeaurora.org/Ti:http://omapzoom.org/http://www.omappedia.com/wiki/Source_Trees

2012-12-05 14:55:17 719

转载 Learning about Android Graphics Subsystem

By Bhanu ChetlapalliSoftware Engineer, MIPS TechnologiesGraphics Performance is the most important component in defining any user interface (UI) experience. The smoothness of the UI interactions a

2012-12-05 14:45:52 1439

原创 Shell编程与vim控制命令

<!--@page {margin:0.79in}h1 {margin-top:0.24in; margin-bottom:0.23in; line-height:200%; page-break-inside:avoid}h1.western {font-family:"Times New Roman",serif; font-size:22pt}h1

2012-11-30 17:26:53 1716

原创 浅谈Android Vold

一、首先看Vold的作用:    Vold:Volume Daemon,用于管理和控制Android平台外部存储设备的后台程序,例如SD卡的挂载、卸载、格式化,以及拔插事件的检查等。    Vold的实现在JNI层,Java层与它打交道的模块是MountService。MountService一方面接收来自Vold的消息,例如SD卡的拔插事件;一方面向Vold发送控制命令,例如挂载和卸

2012-11-30 17:10:44 1096

原创 如何添加一个Android服务

简述主要步骤:1、编写一个AIDL文件,定义服务接口2、将AIDL文件添加到frameworks/base/Android.mk文件中编译,编译完成后会生成stub类3、编写真正工作的服务类,继承上面的stub类4、将自定义的服务注册到SystemServer中

2012-11-30 16:16:41 543

原创 关于Binder线程池

1、Binder线程池的枚举状态:enum{  BINDER_LOOPER_STATE_REGISTERD=0x01  BINDER_LOOPER_STATE_ENTERED=0x02  BINDER_LOOPER_STATE_EXITED=0x04  BINDER_LOOPER_STATE_INVALID=0x08  BINDER_LOOPER_STATE_WATTING

2012-11-30 15:53:47 1817

原创 浅谈Android消息处理机制

分析的源码基于2.3版本1、 Android应用程序在启动的时候,会在进程中加载ActivityThread类,并执行这个类的main函数,应用程序的消息循环就是在这个main函数里面实现的。2、ActivityThread类的main函数做了两件事情:一是在主线程中创建了一个ActivityTread实例,二是通过Looper类使主线程进入消息循环中。3、frameworks/b

2012-11-30 15:08:22 1106 1

原创 分析SurfaceFlinger过程中遇到的对象

<!--@page {margin:0.79in}pre {font-family:"Liberation Serif"}p {margin-bottom:0.08in}--> 注:本文有部分内容并非原创,感谢原来的作者以及红黑联盟的参考图! Surface 这一块确实有点复杂,对象非常多,所以想要了解清楚它们之间的关系并不是一件容易的事情。

2012-11-29 10:41:21 1314

原创 Linux 内核信号表

SIGHUP   终止进程   终端线路挂断SIGINT   终止进程   中断进程SIGQUIT   建立CORE文件终止进程,并且生成core文件SIGILL   建立CORE文件   非法指令SIGTRAP   建立CORE文件   跟踪自陷SIGBUS   建立CORE文件   总线错误SIGSEGV   建立CORE文件   段非法错误SIGFPE   建立C

2012-11-28 15:41:20 683

原创 分析SurfaceFlinger过程遇到的知识点

<!--@page {margin:0.79in}p {margin-bottom:0.08in}pre.cjk {font-family:"DejaVu Sans",monospace}-->使用的源码是2.3的!1、首先看Activity的启动过程: 无论通过Launcher来启动Activity,还是通过Activity内部调用star

2012-11-28 15:34:26 755

原创 如何编译一个精简的Android系统

本次试验使用的android源码是4.2,编译的架构是mini-mips。一、所做的工作1、修改build/target/product/mini.mk,去掉一些不必要的模块(例如Phone、DownloadManager等)2、修改SystemServer.java,屏蔽一些service,让系统能够启动起来(例如,Location Manager、Telephony R

2012-11-28 15:27:55 2533 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除