
Android
文章平均质量分 88
yuzeze
这个作者很懒,什么都没留下…
展开
-
android4.0.3 bluetooth
android:android4.0.3kernel:linux3.0.8五一放假之前,这个蓝牙可以收发数据了,身上一下子轻松了好多。1.kernel :[*] Networking support ---> Bluetooth subsystem support --->转载 2016-12-12 15:29:44 · 1098 阅读 · 0 评论 -
安卓底层开发学习经验第八期
从这章开始,我们来分析Android的一个启动过程的分析我们首先来看一下Android的整个系统的启动分析,首先我们得先给我们的设备通电(Powon),上完电CPU内部会有一个bootloader,这个是在生产的时候就已经烧录好了,它会根据我们的硬件GPIO的一些设置来判断我们的系统是在U盘,SD卡,或者是在内置Flash中启动,然后去引导我们的uboot,我们的ubo转载 2016-11-30 14:33:21 · 616 阅读 · 0 评论 -
安卓底层开发学习经验第七期
这一期我们继续探索Android.mk ,主要讲的是如何编译jar包,如何编译APK,APK中如何导入jar包和库文件,如何在Android.mk中添加判断语句首先我们看一下如何编译生成APK,下面我们来看一下编译生成APK的主要程序代码:LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_F转载 2016-11-30 14:22:51 · 501 阅读 · 0 评论 -
安卓底层开发学习经验第六期
这一期我们继续学习Android.mk的一些语法,主要讲的是如何引入系统库、如何引入第三方库、如何引入静态库、如何进入头文件首先呢,我们先进入我们的Android目录,配置我们的环境变量 .build/envsetup.sh 配置lunch,我们这里依然选择的是19(这里不再细说)然后进入我们的代码目录,cd external/test/ 然后用tree命令看一下代码目录,这个目录下有一转载 2016-11-30 13:42:24 · 754 阅读 · 0 评论 -
安卓底层开发学习经验第五期
这一期我们还是继续来学习Android.mk,下面我们来思考几个问题:[size=10.5000pt]1.如果说我们一个工程下面有多个源码文件,我们要如何把这些源码文件统一的做个管理,一起来进行编译呢?[size=10.5000pt]2.我们如何在一个.mk文件中编译多个目标文件?[size=10.5000pt]3.如何编译生成一个动态库和静态库我们要将工程下的源码转载 2016-11-30 11:28:06 · 565 阅读 · 0 评论 -
安卓底层开发学习经验第四期
这一期呢主要讲的是如何编写自己的Android.mk首先呢,我们来看一下Android.mk的作用,如果我们想要在Android的环境下编译生成自己想要的文件,我们可以生成二进制的可执行文件,可以生成动态库、静态库,这是对于C、C++层来说,那么对于我们得java层来说,Android.mk编译生成jar包或者Android.apk这些Android.mk的编写都是我们基于Andr转载 2016-11-30 11:06:07 · 735 阅读 · 0 评论 -
卓底层开发学习经验 第三期
这一期呢主要讲的是Android编译过程及脚本的分析,主要包括三个方面(1).build/envsetup.sh 的分析 (2)lunch做了什么,如何增加或者删除lunch[size=10.5000pt](3)Android编译命令使用首先呢我们先来看一下Android的编译过程:[size=10.5000pt]1.初始化参数设置[size=10.5000pt]转载 2016-11-30 10:52:43 · 838 阅读 · 0 评论 -
安卓底层开发学习经验 第二期
这一期呢主要讲的就是安卓开发前的一些环境搭建,首先是有一台Ubuntu的pc机,然后是相关命令的安装,及源码的下载编译,和源码目录的介绍[size=10.5000pt]一、Ubuntu的安装Ubuntu的安装其实就是一个系统的安装,自己只需要去Ubuntu的官网下载一个Ubuntu的iso镜像,然后按照官方的文档进行安装就行了,安装完之后呢我们需要用Ubuntu的sudo apt-ge转载 2016-11-30 10:16:35 · 1535 阅读 · 0 评论 -
安卓底层开发学习经验第一期
最近想学习一下安卓了,于是在网上买了一块安卓开发板,我买的是芯灵思的开发板,核心板是全志的A31S,感觉性能挺好,而且老板还给了很多的资料,而且还带学习的视频,下面是我在学习完第一期之后的一个经验,希望能跟大家分享一下,也希望各位大神能多多的帮助小弟,小弟在此谢过了。大家可以去芯灵思官方网站看一下安卓开发我们要学习的包括四个部分:[size=10.5000pt]1.安卓开发环境的搭转载 2016-11-30 10:04:23 · 4073 阅读 · 0 评论 -
安卓底层开发学习经验第十八期
这一期我们学习Zygote在启动过程中的预加载分析与优化下面我们来看一下我们preload加载资源的一个过程我们加载资源分为三种,第一个就是preloadClasses预加载我们的系统类,这个系统类定义的文件是在frameworks/base/preloaded-classes,我们加载的一个过程其实是Class.forName来真正的加载这个类,加载完之后我们就会在zyg转载 2016-11-30 09:44:57 · 650 阅读 · 0 评论 -
android4.0.3 修改启动动画和开机声音
1. Linux 系统启动,出现Linux小企鹅画面(reboot)(Android 1.5及以上版本已经取消加载图片);2. Android平台启动初始化,出现"A N D R I O D"文字字样画面;3. Android平台图形系统启动,出现含闪动的ANDROID字样的动画图片(start)。现在我们说的是第三种方式(基于模拟器):android开机动画叫源码位于fr转载 2016-06-23 11:42:53 · 444 阅读 · 0 评论 -
卓底层开发学习经验第九期
芯灵思开发板INIT守护进程本章主要讲的是芯灵思开发板init守护进程,首先我们来看一下init进程源码的位置,他是放在:system/core/init/init.c ,当我们编译完生成init应用程序后,他会放在:/init下,init是内核起来之后,所启动的第一个进程,我们先将开发板和我们的pc机用USB线连接在一起,然后我们切换到cmd命令下,使用adb命令查看电脑有没有连接到我们转载 2016-11-30 15:32:32 · 500 阅读 · 0 评论 -
安卓底层开发学习经验第十期
这一期呢我们来学习一下Android的启动脚本,也就是init.rc,那么我们首先来看一下我们的init.rc中都包含有哪些内容我们来看一下init.rc中都包含了哪些内容,先打开init.rc首先是录入了一些其他的脚本,有我们的init.environ.rc 、init.usb.rc等,剩下的就是我们脚本真正所做的内容了,首先是有一个on early-转载 2016-11-30 16:42:11 · 802 阅读 · 0 评论 -
Android4.0.3/Android4.2.2 添加 Ethernet
基于Android4.0.3系统上:在网上在网上查找ethernet移植相关资料时发现,若要移植的是Android-xxx的版本的ethernet,就需要android-x86在xxx版本上的相关源码。但是查看android-x86 4.0版本的源码(目前没找到android-x86 4.0.3版本),发现android-x86 4.0版本中也没包含有ethernet相关代码,故下载了et转载 2016-12-12 14:22:13 · 1288 阅读 · 0 评论 -
安卓底层开发学习经验第二十期
这一期我们来学习一下Android SystemServer所做的事情以及他的一个启动过程。首先我们要明白systemService是我们zygote孵化出来的第一个Android服务程序,而这个服务程序会在他的启动过程中,启动我们所有的Android的核心服务,下面我们来介绍几个主要的服务其中Android systemserver他会派生出下面几个主要服务,首先是我们的电源相转载 2016-11-30 22:22:46 · 956 阅读 · 0 评论 -
安卓底层开发学习经验第十九期
这一期我们来学习Android bootanim的一个启动过程首先我们来看一下Android bootanim的一个启动过程:首先我们会在init.rc中定义一个bootanim的服务,这个服务在最开始是被disable掉的,是因为我们Android的显示需要依赖于Android系统的surface管理服务,所以我们必须等待整个显示的硬件初始化完成,软件初始化完成,然后才能真正的试用And转载 2016-11-30 22:15:18 · 743 阅读 · 0 评论 -
安卓底层开发学习经验第十七期
这一期我们来分析一下Zygote是如何在我们的服务中创建一个APP应用的。下面我们来看一下Zygote创建应用我们的zygote再启动过程中,首先会创建一个本地套接字,他就用来接收消息,来创建应用。第二个就是load资源,把资源全部load进来,包括class等。第三就是创建我们的system server,然后这个服务会创建所有的系统服务,并且启动我们第一个lun转载 2016-11-30 21:08:52 · 462 阅读 · 0 评论 -
安卓底层开发学习经验第十六期
这一期我们来学习Zygote的一个启动过程,以及Zygote是如何启动system_server的下面我们来看一下Zygote服务在启动中做哪些事情首先我们的Zygote服务是被我们的AndroidRuntime这个类所启动的,启动的时候首先要创建一个虚拟机,然后得到我们zygote他的类名和方法,然后去启动我们的zygote服务,在启动过程中我们就会产生我们的第一个j转载 2016-11-30 21:00:08 · 428 阅读 · 0 评论 -
安卓底层开发学习经验第十五期
这一期我们来学习一下Android的一些基本的服务与Zygote的启动首先我们来看一下在init脚本中配置的一些服务 我们的服务包括netd服务,它主要做的是网络管理,第二个是比较重要的servicemanager,他就是通过一定的机制使我们的client与service服务进行通讯,第三个是我们的surfaceflinge,也就是我们显示的管理,首先要初始转载 2016-11-30 20:27:44 · 459 阅读 · 0 评论 -
安卓底层开发学习经验第十四期
这一期我们来看一下init进程是如何守护我们的服务我们init进程在守护阶段做的工作有三个,第一个是启动我们的服务,执行我们脚本的命令,第二个是接受shell或系统中的消息,来设置我们系统的prop,第三个就是守护我们的系统服务,如果服务退出,那么就会根据服务的设置状态重启推出的服务下面我们来看一下init进程是如何处理消息与守护服务的这就我们init进程与其他转载 2016-11-30 20:24:42 · 453 阅读 · 0 评论 -
安卓底层开发学习经验第十三期
这一期我们来看一下我们init进程是如何执行这些脚本,和创建服务、守护服务的。首先来看一下init进程在后期所做的一些工作当我们吧脚本解析完之后,就会把我们的解析结果放到两个结构中,一个是action_list,一个是service_list,在解析完之后我们会使用我们的action_for_each_trigger来将解析脚本中的相关操作添加到我们的action队列中转载 2016-11-30 17:33:34 · 579 阅读 · 0 评论 -
安卓底层开发学习经验第十二期
下面呢,我们接着上一期的内容来讲解lookup_keyword,下面我们来具体看一下这个函数的实现这个函数就是根据我们传进来的字符串来匹配一个和命令相关的结构体,我们来看一下我们结构体的定义第一个就是一个name,这个name和我们的命令相对应,第二个是我们这个命令所对应的一个函数,第三个对应的是我们args的一个参数,最后一个是结构体所对应的一个类型,我们转载 2016-11-30 17:11:37 · 732 阅读 · 0 评论 -
安卓底层开发学习经验第十一期
这一期呢,我们主要是学习我们的init进程脚本如何解析我们的启动脚本的,我们init进程做完一些初始化的工作之后就会解析我们的启动脚本,他的启动过程主要分为下面几个部分第一个就是使用init_parse_config_file函数来解析我们的启动脚本,把我们的启动脚本的每一个命令全部解析到我们的一个列表中;第二个就会调用action_for_each_trigger和que转载 2016-11-30 17:03:54 · 456 阅读 · 0 评论 -
View类的XML属性、相关方法及说明
XML属性相关方法说明Android:alphasetAlpha(float)设置该组件的透明度android:backgroundsetBackgroundResource(int)设置该组件的背景颜色android:clicka转载 2016-07-05 13:10:14 · 281 阅读 · 0 评论 -
Android进阶(二十八)上下文菜单ContextMenu使用案例
上下文菜单ContextMenu使用案例前言 回顾之前的应用程序,发现之前创建的选项菜单无法显示了。按照正常逻辑来说,左图中在“商品信息”一栏中应该存在选项菜单,用户可进行分享等操作,但是现在此操作莫名其妙的消失了。写了个测试Demo,如中图所示,一切按照逻辑显示正常。怪就怪在项目中无法显示,起初设想是因为Android系统版本太高问题,但是在别的手机上测试之后发现问题依转载 2016-07-04 14:44:22 · 478 阅读 · 0 评论 -
深入浅出 - Android系统移植与平台开发(九)- Android系统system_server及Home启动
3.3 Zygote守护进程与system_server进程Android的运行环境和Java运行环境有着本质的区别,在Android系统中每个应用程序都是一独立的进程,当一个进程死掉时,不会影响其它进程的运行,这能极大的保证Android系统的稳定。 Zygote守护进程的启动是Android运行环境启动的开始阶段, Zygote进程通过Linux系统特有的Fork机制分裂克隆出完全转载 2016-07-01 15:24:18 · 984 阅读 · 0 评论 -
深入浅出 - Android系统移植与平台开发(八)- Android系统的本地服务
3.2 Android本地守护进程由上节可知,最后一个Action boot的最后一个Command为class_startdefault,用来启动所有class为default的Service,其实在init.rc里定义的Service其class类别都没有定义,都使用default,这也意味着所有的Service都会被class_startdefault命令启动,下面列表了Androi转载 2016-07-01 15:12:42 · 344 阅读 · 0 评论 -
深入浅出 - Android系统移植与平台开发(七)- Android系统的启动
第三章、Android系统的启动本章节主要介绍Android系统从init进程启动开始到Android的桌面启动的全部过程。本章节主要内容:Ø Android init进程启动Ø Android本地守护进程启动Ø Zygote进程的启动及SystemServer进程的创建Ø Android系统服务的启动Ø Android桌面HOME的启动转载 2016-07-01 14:59:08 · 363 阅读 · 0 评论 -
Android系统访问串口设备
在常见的嵌入式外设中,串口通信是经常使用的一种通信机制,本篇文章给你带来,如何在Android系统中实现对串口设备的访问。在Android中如何访问底层Linux的设备驱动,必然要用到HAL,即:硬件抽象层。关于HAL的概念及框架分析,请查看作者的下面几篇博文。 > 深入浅出 - Android系统移植与平台开发(七)- 初识HALhttp://blog.csdn.n转载 2016-07-01 14:17:58 · 754 阅读 · 0 评论 -
深入浅出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境
2.4搭建Android SDK开发环境上一节我们讲解了如何下载、编译Android系统及Linux内核,接下来,讲解如何搭建Android SDK开发环境,包括Eclipse下载安装、ADT插件安装、Framework源码级调试、定制Android系统等相关知识。2.4.1 下载、安装Eclipse说明:当前新的SDK开发环境Google采用了ADT Bundle,如果为了方便安转载 2016-07-01 14:05:58 · 758 阅读 · 0 评论 -
深入浅出 - Android系统移植与平台开发(五)- 编译Android源码
2.3编译Android源码Android源码体积非常庞大,由Dalvik虚拟机、Linux内核、编译系统、框架代码、Android定制C库、测试套件、系统应用程序等部分组成,在编译Android源码之前,必须要先掌握Android源码的组成。2.3.1Android源码目录结构在Android源码中,按照不同功能代码被放在不同的目录下:目录转载 2016-06-30 17:27:24 · 1354 阅读 · 0 评论 -
深入浅出 - Android系统移植与平台开发(四)- 搭建Linux编译环境
Android的源码开发可以在MacOS上或Ubuntu系统上,目前不支持在Windows下进行源码开发,在Ubuntu上建立开发环境的步骤如下:建立Linux编译环境安装JDK安装编译必备程序包下载Android源码及Linux内核注:本书中使用的是针对Android2.3开发环境,并没有使用最新Android版本,原因其一是,Android版本升级比较频繁,其二转载 2016-06-30 17:03:01 · 494 阅读 · 0 评论 -
深入浅出 - Android系统移植与平台开发(三)- 配置Vmware网络
2.1.3 VMware网络配置VMware软件的强大之处在于它能够保证虚拟机和宿主机平等并列运行,并且让二者进行网络通信,而我们在开发Android系统应用时会使用到网络,将来做Android系统移植时更需要网络的支持,因此VMware的网络配置对开发者非常重要。Ø 宿主机网络接口:在安装完VMware软件后,在宿主机的网络连接里自动创建了三个虚拟网卡:VMnet0、V转载 2016-06-30 16:59:39 · 602 阅读 · 0 评论 -
深入浅出 - Android系统移植与平台开发(一)
写在前面的 这是我最近两年的Android开发的经验总结,断断续续的写了几个月了,欢迎大家砖头,有不对的地方,或需要改进的地方,请指出来,先贴出来目录来看看。第一章、 概述... 51.1 Android 操作系统介绍.... 51.2 Android软件架构介绍.... 61.3转载 2016-06-30 16:30:03 · 1614 阅读 · 0 评论 -
深入浅出 - Android系统移植与平台开发(十一)- Android系统的定制
4.3定制Android平台系统通常产品厂商在拿到Android源码后会在Android源码基础上进行定制修改,以匹配适应自己的产品,从本节开始,我们从最原始的Android源码系统里一步一步定制出自己的Android系统。本节主要内容包含:根据Android源码,添加新产品编译项,定制系统启动界面和文字,定制系统启动动画和声音,定制系统桌面。4.3.1 添加新产品编译项A转载 2016-06-30 15:23:02 · 1073 阅读 · 0 评论 -
深入浅出 - Android系统移植与平台开发(十二)- Android JNI机制
第五章、JNI机制4.1 JNI概述 由前面基础知识可知,Android的应用层由Java语言编写,Framework框架层则是由Java代码与C/C++语言实现,之所以由两种不同的语言组合开发框架层,是因为Java代码是与硬件环境彻底“隔离”的跨平台语言,Java代码无法直接操作硬件。比如:Android系统支持大量传感器,Java运行在虚拟机中,无法直接得到传感器数据,而A转载 2016-07-01 15:28:47 · 801 阅读 · 1 评论 -
深入浅出 - Android系统移植与平台开发(十三)- Android的对象管理
第六章、Android的对象管理在Java中,不再使用的对象会通过gc机制来自动回收,而Android系统运行时库层代码是由C++编写的,在C++中创建的对象通常使用指针来操作,一旦使用不当,轻则造成内存泄漏,重则造成系统崩溃。不过在Android源码实现中,它为我们提供了智能指针来对C++对象进行管理,这使得程序员不再需要关注对象的生命周期、对象是否已经释放。本章主要内容如下:转载 2016-07-01 16:01:50 · 435 阅读 · 0 评论 -
Android四大组件之Service精通
(一)概述 本节,我们继续来研究Service(服务)组件,本节将会学习下Android中的AIDL跨进程通信的一些 概念,并不深入到源码层次,暂时知道是什么,会用即可!(二)Service精通 1.Binder机制初涉 1)IBinder和Binder是什么鬼?我们来看看官方文档的中文翻译: IBinder是远程对象的基本接口,是饿了高性能而设计的轻量级远程调用机转载 2016-07-04 14:42:21 · 444 阅读 · 0 评论 -
Android 的源代码结构
Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示:.|-- Makefile(全局的Makefile)|-- bionic(Bionic含义为仿生,这里面是一些基础的库的源代码)|-- bootloader(引导加载器)|-- build (build目录中的内容不是目标所用的代码,而转载 2016-07-01 17:15:33 · 373 阅读 · 0 评论 -
《深入浅出嵌入式底层软件开发》
++++++++++++++++++++++++++++++++++++++++++本文系本站原创,欢迎转载! 转载请注明出处:http://blog.youkuaiyun.com/mr_raptor/article/details/6744480++++++++++++++++++++++++++++++++++++++++++ + 硬件-宝剑,软件-剑法,体转载 2016-07-01 16:43:35 · 1828 阅读 · 0 评论