![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android framework
文章平均质量分 77
林伟
怪人一个!
展开
-
Display Drivers
IntroductionFunctionalityImplementing Your Own Driver (Driver Template)TroubleshootingIntroductionThis section describes how the display driver functions and offers a functional template d原创 2009-12-25 16:11:00 · 1567 阅读 · 0 评论 -
Android JNI知识简介
Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作。 1.从如何载入.so档案谈起 由于Android的应用层的类都是以J原创 2010-03-25 20:45:00 · 10488 阅读 · 1 评论 -
Android Native(JNI)層的多線程安全
一、Native 程式如何誕生子線程 在Java層的各進程(Process) 都有主線程(Main Thread),各線程皆可能誕生子線程。這些Java層的線程都有可能並行呼叫同一個Native函數,因而Native函數的線程安全考量是必要的。 Java線程一旦進入Native函數裡執行,在其執行過程中,也可能會誕生子線程,也可能多個線程並行執行同一個非Native的一般C/原创 2010-03-28 19:50:00 · 5036 阅读 · 0 评论 -
android 包管理系统分析
包管理脚本 /system/bin/pm 解析:pm的使用方法可以参考 Pm.java (frameworks/base/cmds/pm/src/com/android/commands/pm)文件中的static void showUsage()函数:private static void showUsage() { System.err.println("usage: pm [l原创 2010-04-09 11:23:00 · 3039 阅读 · 0 评论 -
定制你自己的桌面--- launcher小觑
launcher也就是我们的Home,可以简单地把它理解为一个简化的linux GUI。作为一个GUI它首先必须完成它最本分的功能,就是它必须能提供对所有应用程序(CATEGORY_LAUNCHER)的映射;不过作为一个 GUI,它除了做好本分之外还必须是符合大众审美的美女(wallpaper);另外还必须具有良好的交互性,没有良好的交互性就像你对一位美女殷勤了半天,她却直接对无视,那结果是比原创 2010-04-09 13:57:00 · 1236 阅读 · 0 评论 -
浅析android通过jni控制service服务程序的简易流程
android_net_wifi_startSupplicant这个就是jni函数=>wifi_start_supplicantstatic const char SUPP_CONFIG_TEMPLATE[]= "/system/etc/wifi/wpa_supplicant.conf";static const char SUPP_CONFIG_FILE[] = "/data/misc/wifi原创 2010-04-01 17:42:00 · 194 阅读 · 0 评论 -
浅析android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制
=============================================================================================================libs/android_runtime/android_net_wifi_Wifi.cpp部分jni接口static JNINativeMethod gWifiMethods[]原创 2010-04-01 17:42:00 · 1626 阅读 · 0 评论 -
Android Power Management
总体上来说Android的电源管理还是比较简单的, 主要就是通过锁和定时器来切换系统的状态,使系统的功耗降至最低,整个系统的电源管理架构图如下: (注该图来自Steve Guo) 接下来我们从Java应用层面, Android framework层面, Linux内核层面分别进行详细的讨论:应用层的使用:Android提供了现成android.os.PowerMana原创 2010-04-01 17:44:00 · 1212 阅读 · 0 评论 -
Android 2.1 源码结构分析
Android 2.1|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts (An原创 2010-04-08 11:42:00 · 1582 阅读 · 0 评论 -
Android JNI 应用实例
Android的SDK中没有包括JNI的支持,而且对如何支持JNI也没有任何文档说明。不过既然整个Android平台是开源的,我们可以通过Google发布的源代码来找到一些线索(比如frameworks/base/media/jni/目录),依葫芦画瓢的实现上层JAVA程序通过JNI来调用Native C程序中的函数。 依照下面的步骤可以实现一个非常简单的JNI的实例程序: 1.原创 2010-03-25 20:51:00 · 1862 阅读 · 0 评论 -
Android上JNI的调试
Android的SDK中没有包括JNI的支持,而且对如何支持JNI也没有任何文档说明。不过既然整个Android平台是开源的,我们可以通过Google发布的源代码来找到一些线索(比如frameworks/base/media/jni/目录),依葫芦画瓢的实现上层JAVA程序通过JNI来调用Native C程序中的函数。 依照下面的步骤可以实现一个非常简单的JNI的实例程序: 1原创 2010-03-25 20:46:00 · 2715 阅读 · 0 评论 -
Recovery简介
Android利用Recovery模式,进行恢复出厂设置,OTA升级,patch升级及firmware升级。升级一般通过运行升级包中的META-INF/com/google/android/update-script脚本来执行自定义升级,脚本中是一组recovery系统能识别的UI控制,文件系统操作命令,例如write_raw_image(写FLASH分区),copy_dir(复制目录)。转载 2010-03-23 10:10:00 · 2960 阅读 · 0 评论 -
What's in Android source package
.|-- bionic Android"仿生"庫,包含了一些基礎庫。它存在的意義在于避規GPL| |-- libc C庫。| | |-- arch-arm libc針對arm部分的實現| | |-- arch-x86 libc針對x86部分的實現。(查看后發現很多是open BSD的代碼,如果缺什么可以從open BSD中"抄"過來,比如sigsetjmp.S ……)| | |-原创 2009-12-23 15:18:00 · 1183 阅读 · 0 评论 -
将Android移植到FS2410开发板上
一、目前进展1.Android已经可以通过NFS在FS2410开发板上运行二、目前缺陷1.触摸屏没有校准2.Android中时钟停止,结束zygote进程,系统重启,时钟更新,但再次停止不动3.串口无法与GPRS模块通讯三、移植步骤一、移植Android内核到FS2410开发板上1、从http://code.google.com/p/android/download转载 2009-12-26 21:23:00 · 962 阅读 · 0 评论 -
android之handler使用--对于异步消息的处理
android里面对于异步消息的处理,提供了一套Handler的实现方案。Handler有很多适宜的应用和微妙之处,使它在和Thread以及Service等一起使用的时候达到很好的效果。一. Handler与Thread的区别。Handler与调用者处于同一线程,如果Handler里面做耗时的动作,调用者线程会阻塞。Android UI操作不是线程安全的,并且这些操作必须在UI线程转载 2010-03-10 09:42:00 · 1183 阅读 · 1 评论 -
android 使用 NFS 根文件系统
最近在研究android的移植,目标平台是marvell的pxa310。在网上看到很多高手的文章,得到很多启发。转载一片如何使用nfs作为根文件系统的文章,写的不错[First written by Steve Guo, please keep the mark if forwarding.]Usually the Android uses YAFFS as rootfs and原创 2009-12-28 20:53:00 · 1771 阅读 · 0 评论 -
Bring Up
Once your code is built and you have verified that all necessary directories exist, power on and test your device with basic bring up, as described below. Bring up tests are typically designed to st原创 2009-12-28 21:27:00 · 5346 阅读 · 1 评论 -
Android移植之文件系统总结
Opendroid原创,转载请注明最近搞Android移植,文件系统自然是重头戏,移植的绝大多数问题,也都出在这里。这里总结一下一些经验技巧等。1. 文件系统的结构 制作Android文件系统,仅需要编译出的root和system两个文件夹即可,不需要data目录,data会在启动过程中自行创建并写入文件。无论选择什么文件系统,这都是可行的。2. 文件系统的选择1)使用nfs的话,最简单,原创 2009-12-28 21:29:00 · 1343 阅读 · 0 评论 -
Android init 启动过程分析
分析android的启动过程,从内核之上,我们首先应该从文件系统的init开始,因为 init是内核进入文件系统后第一个运行的程序,通常我们可以在linux的命令行中指定内核第一个调用谁,如果没指定那么内核将会到/sbin/,/bin/ 等目录下查找默认的init,如果没有找到那么就报告出错。下面是曾经用过的几种开发板的命令行参数:S3C2410 启动参数:noinitrdroot=/dev/nf原创 2009-12-28 21:38:00 · 1743 阅读 · 0 评论 -
Android 技术专题系列之十七 -- volume 服务
Android 的volume服务主要是用来管理usb/sd卡 等外部存储设备。平台可以对外部存储设备进行操作和轮询状态,当外部存储设备状态发生变化时,volume 服务也会即时报告平台。相关代码主要位于:system/core/voldframeworks/base/services/java/com/android/server/MountListener.javaframeworks/bas转载 2010-03-11 18:35:00 · 2148 阅读 · 2 评论 -
Android应用程序的快速启动
Android系统框架和上层应用是类java(不是正统的sun java)开发的,实现了自己的java虚拟机dalvik,既然用java虚拟机和java开发,一般都会认为效率低下。其实不然,在基本主流的智能手机的软件平台上,android的执行速度是最快的。 那么android效率为什么这么的高呢?特别是一个应用程序的启动时间很短,本文主要从以下个八方面进行分析: 1、 资源文件的优转载 2010-04-09 11:06:00 · 1190 阅读 · 0 评论 -
Problems with S3C6410 double framebuffer in Android
S3C6410的双Framebuffer于Android系统中存在的问题在为S3C6410移植Android系统过程中,发现在拖动任务栏,软键盘输入信息等情况下,屏幕会出现闪烁现象,类似刷新率不足情况。一直认为原因是自己porting的系统没有实现copybit等2D加速功能,导致填充速度不够快。昨天在调试双Framebuffer时发现,问题可能出在双Framebuff原创 2010-04-25 12:17:00 · 2705 阅读 · 0 评论 -
Android HAL分析报告
1 HAL简介Android 的 HAL(Hardware Abstract Layer硬件抽象层)是Google因应厂商「希望不公开源码」的要求下,所推出的新观念,其架构如下图。虽然 HAL 现在的「抽象程度」还不足,现阶段实作还不是全面符合 HAL的架构规划,不过也确实给了我们很好的思考空间。图1:Android HAL 架构规划这是 Patrick Brady (Google原创 2010-04-26 10:20:00 · 2557 阅读 · 0 评论 -
关于编译android时出现Error 41的解决方法
<br />我遇到这个错误,在国外论坛看到了解决办法并解决成功,希望能帮助到别人。<br /><br />错误:<br />build/core/product_config.mk:229: WARNING: adding test OTA key <br />host Java: clearsilver (out/host/common/obj/JAVA_LIBRARIES/ <br />clearsilver_intermediates/classes) <br />Unrecognized optio转载 2010-09-01 11:13:00 · 1766 阅读 · 0 评论 -
打android的patch
<br />How to download the android kernel由于目前从android网站git后的源代码中不包括kernel,所以需要单独下载android kernel,生成使用的补丁,下面是我使用的方法,供大家参考;Here is a way of extracting raw Android patches at a certain point intime, though this may be datedken@ken:/data/android/a原创 2010-09-17 10:18:00 · 6236 阅读 · 0 评论 -
android 可执行程序终于可以在nxp8473--cortex-a9平台运行
现在android 的可执行程序终于可以在nxp8473--cortex-a9平台运行了,其中直接的原因是:由于宏定义errno造成的-------非法访问内存地址bionic/libc/bionic/libc_init_common.cvoid __libc_init_common(uintptr_t *elfdata){int argc = *elfdata;char** argv = (char**)(elfdata + 1);char** envp = argv +原创 2010-09-17 10:20:00 · 3387 阅读 · 0 评论 -
Android权限获取机制与常见权限不足问题分析
Android系统是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制,很多像我这样的新手,尤其是习惯了windows低安全限制的用户,很容易在这方面弄混淆,下面是我总结的Android系统权限相关的内容,作为这段时间对android权限学习的总结,也希望能对大家有所帮助,不正确之处请指出。首先分清两个概念:要区分apk运行时的拥有的权限与在文件系统上被访问(读写执行)的权限两个概念。apk程序是运行在虚拟机上的,对应的是Android独特的权限机制,只有体现到文件系统转载 2011-01-10 17:55:00 · 11719 阅读 · 2 评论 -
Android quikboot
<br />最近,随着数字家电的高功能化,将易于开发的Linux用作OS的情况越来越多。因此,启动时间成为问题。因为OS比较小的RTOS(real- time operating system)尺寸大,所以Linux配备机型启动耗费时间。在这种情况下,从事嵌入软件开发的日本Ubiquitous,于2009年11月10日发布了可非常快速地启动配备美国谷歌基于Linux的“Android”平台终端的“Ubiquitous Quick-Boot”(以下称QuickBoot)技术。该公司用配备飞思卡尔半导体ARM系原创 2010-11-19 19:11:00 · 4467 阅读 · 1 评论 -
porting iperf to Android platform
下面的文档描述如何移植 iperf 到 android 平台中1. download iperf source codelatest iperf version from the below link:http://sourceforge.net/projects/iperf/and then unzip it.tar zxvf iperf_2.0.4.orig.tar.gz2. copy iperf-2.0.4 copy iperf-2.0.4 folder to ex转载 2011-01-10 17:36:00 · 5832 阅读 · 0 评论 -
Android中通过按键旋转屏幕
<br /><br />Android上的home键是系统直接处理的,功能如下:<br />1:跳转到Home界面,如果Home进程死掉了,则重新启动Home进程<br />2:长按5s,弹出选择应用的窗口,可以切换应用.<br />由于需要,我需要修改这里的部分逻辑,修改后的逻辑不能放出,这里放出我找到的大概地点<br />view plaincopy to clipboardprint?<br />public boolean interceptKeyTi(WindowState win, int co转载 2011-02-24 14:58:00 · 5947 阅读 · 3 评论 -
Simple Guide for Porting Android Kernel (portingNote)
<br /><br />原作:劉旭暉 轉載請註明出處 http://blog.csdn.net/colorant/<br />增訂:Rider1. Android內核Porting相關背景知識1.1 運行平台<br />Google 的Android平台到20020227為止,應用部分還是以二進制的 Binary形式發佈的,其编譯的目標平台 ARM926EJ-S的CPU是屬於ARMV5T的版本,所以ARMV4架購的CPU平台無法使用其二進制代碼。關於這點,可以参考下面這篇文章,Benno在此做了詳細的理論分转载 2010-09-09 23:07:00 · 2531 阅读 · 0 评论 -
android----制作splash镜像
<br />1、使用ImageMagick自带的convert命令,进行raw格式转换(convert -depth 8 splash.png rgb:splash.raw)<br /> 注:imgageMagick安装包,执行sudo apt-get install imagemagick<br />2、编译一下android自带的rgb2565工具,其 路径在$ANDROID_HOME/build/tools/rgb2565上(gcc -O2 -Wall -Wno-unused-parameter原创 2010-06-09 19:54:00 · 2814 阅读 · 0 评论 -
Android 移植之 iperf
1.移植准备<br /> 1,源代码地址:<br /> http://sourceforge.net/projects/iperf/files/iperf/2.0.4%20source/iperf-2.0.4.tar.gz/download, 下载iperf-2.0.4.tar.gz,并放到Adroid_root/external;<br />2,解压到Adroid_root/external/ iperf-2.0.4.tar.gz;<br /> tar –zxvf ip原创 2010-06-01 21:53:00 · 4849 阅读 · 0 评论 -
利用UBIFS挂载Android文件系统
内核选项需要修改的地方1)Device Drivers --->Memory Technology Device (MTD) support --->UBI - Unsorted block images --->Enable UBI2)File systems --->Miscellaneous filesystems --->UBIFS file system suppo原创 2010-04-26 10:21:00 · 4375 阅读 · 0 评论 -
ADROID 2.1 架构解析 语言定制
1 语言定制1.1 ICU4C1.1.1 ICU4C简介ICU4C(ICU for C,http://site.icu-project.org/)是ICU在C/C++平台下的版本, ICU(International Component for Unicode)是基于"IBM公共许可证"的,与开源组织合作研究的, 用于支持软件国际化的开源项目。ICU4C提供了C/C++平台强大的国际化转载 2010-04-30 14:34:00 · 3145 阅读 · 4 评论 -
深刻解析 Android 的 AIDL 介面
在Android應用框架裡,應用層級的軟體大多是Java類別,而系統層級的軟體大多是C或 C++類別。Android使用JNI介面來達成這個目標。例如,在Android裡有個MediaPlayer.cpp類別,當它搭配上JNI介面之後,在VM上執行的MediaPlayer.java就可以透過JNI介面與MediaPlayer.cpp類別溝通了。 圖1-1原创 2010-04-30 11:45:00 · 2142 阅读 · 0 评论 -
ADROID 2.1 架构解析 亮度设置
3 亮度设置3.1 应用设计3.1.1 设置进度条范围背光设置是在:设置->声音和显示->亮度,通过进度条来设置的。文件:packages/apps/Settings/src/com/android/settings/BrightnessPreference.javaprivate static final int MINIMUM_BACKLIGHT = android.o转载 2010-04-30 14:37:00 · 1901 阅读 · 1 评论 -
android lk机制介绍
(L)ittle (K)ernel based Android bootloaderFirst of all thanks to Travis Geiselbrecht, Brian Swetland and Dima Zavin for the initial work on (L)ittle (K)ernel project and open-sour原创 2010-05-04 16:39:00 · 6843 阅读 · 4 评论 -
Android内核和驱动篇-Android内核介绍
已经有一些的文章介绍Android内核了,本系列篇将从Linux内核的角度来分析Android的内核,希望给初学者提够有用的信息。本章将简单的介绍Android内核的全貌,起到一个抛砖引玉的作用。从下一篇开始将详细介绍每一个Android内核驱动程序及其作用。Android内核是基于Linux 2.6内核的(目前最新开发版本是2.6.31),它是一个增强内核版本,除了修改部分Bug外,它提供了用于原创 2010-05-14 15:30:00 · 5333 阅读 · 6 评论 -
Android PMEM驱动研究 在应用程序中使用PMEM
Android PMEM主要有两个作用(来自android mail list): 1. GPU or VPU buffers shared with CPU core 2. Android service heap. 其中1是不能cache的,2可以cache,平台设备注册中 cached = X即控制是否可以被cache。 =====================原创 2010-05-17 16:02:00 · 12453 阅读 · 1 评论