Android底层
文章平均质量分 81
YongYu_IT
区块链,分布式系统
展开
-
Nexus刷机
转自:http://www.it165.net/pro/html/201609/75705.html转载 2016-11-03 15:22:54 · 532 阅读 · 0 评论 -
HAL开发全流程(分析)
本文继续《HAL开发全流程(验证)》分析应用层调用系统服务的全过程源文件下载地址:---------------------------------------------------------------------------------------------------------------------------------------------------原创 2016-12-06 11:45:59 · 634 阅读 · 0 评论 -
android telephony 之 UICC 卡数据读写及 UICC 框架结构
来自:http://blog.csdn.net/shichaosong/article/details/40785033转载 2016-12-09 14:31:44 · 671 阅读 · 0 评论 -
Android中LocalSocket使用
来自:http://www.cnblogs.com/bastard/archive/2012/10/09/2717052.html一 Socket Socket最初用在基于TCP/IP网络间进程通信中,以客户端/服务器模式进行通信。实现异步操作,共享资源集中处理,提高客户端响应能力。Tcp通信基本流程: 服务器端转载 2016-12-15 16:57:07 · 437 阅读 · 0 评论 -
修改Android源码编译输出目录
gedit ./build/core/envsetup.mk#add by yuyongOUT_DIR := /home/thinking/android-sources/OUT/6.0/out原创 2017-01-16 10:38:57 · 3113 阅读 · 0 评论 -
多用户同时在一台服务器编译Android源码错误——Communication error with Jack server (77)
错误:FAILED: /bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar 2>&1 || (exit 0) ) && (JACK_SERVER_VM_ARG原创 2017-01-16 16:38:13 · 10673 阅读 · 0 评论 -
HAL开发全流程(二)
3、系统级Android Service开发3.1 系统级Android Service服务接口定义(AIDL定义)IJoffeeService.aidl文件/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (t原创 2016-06-02 15:38:32 · 1215 阅读 · 5 评论 -
Android native service实例(二)Healthd模块
1、service部分android-7-0-0_r6\system\core\healthd\BatteryPropertiesRegistrar.handroid-7-0-0_r6\system\core\healthd\BatteryPropertiesRegistrar.cppvoid BatteryPropertiesRegistrar::publish( c原创 2017-01-20 16:07:09 · 1635 阅读 · 0 评论 -
Android native service实例(一)
AOSP版本:android-7-0-0_r6项目结构:1、service:native service的主体,即服务的实现部分2、server:native service的载体,即启动和注册服务的部分。3、client:客户端程序,服务调用封装。4、test:测试client--------------------------------------------原创 2017-01-20 10:54:18 · 3464 阅读 · 3 评论 -
Android启动过程研究(二:AIL描述的init.rc)
在Android系统初始化时,init进程通过读取init.rc文件来设置环境变量,运行相应程序。而init.rc是用Android Init Language(AIL,android初始化语言)编写的。AIL可以调用parse_config_file函数来解释执行。一、AIL包含四种类型的声明:1/ Actions (动作)2/ Commands (命令)原创 2016-06-21 16:09:02 · 824 阅读 · 0 评论 -
AOSP预写配置文件
如果想将配置文件原样拷贝到镜像文件中,刷机直接原样刷入手机,可以这样干:比如在 frameworks/base/data/下有一个文件夹 face_files文件夹下有haarcascade_eye.xmlhaarcascade_eye_tree_eyeglasses.xmllbpcascade_frontalface.xml三个文件------------原创 2017-02-13 16:19:04 · 458 阅读 · 0 评论 -
预置apk
来自:http://note.youdao.com/noteshare?id=189b5800e2224aec83b501d8f526abc9[DESCRIPTION]1, 如何将带源码的 APK 预置进系统?2, 如何将无源码的APK预置进系统?3, 如何预置APK使得用户可以卸载,恢复出厂设置时不能恢复?4, 如何预置APK使得用户可以卸载,并且恢复出厂设置转载 2016-11-09 18:03:12 · 376 阅读 · 0 评论 -
Android系统分区
来自http://www.programgo.com/article/21532529070/android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中, ramdisk.img是emulator的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,emulator负责加载这3个映像文原创 2016-11-04 17:31:49 · 541 阅读 · 0 评论 -
android 源代码编译
android源代码研究是通向高级Android工程师的必由之路。下面选择两个版本的Android源码编译总结实践经验。1、android源代码获取android源代码获取工具:repo,基于git改装。repo使用:安装repo工具(网上找方法),新建空工程目录,在此目录下repo init -u http://... (这个初始化命令仅对当前目录有效,其配置信息写在当前目录的".r原创 2016-05-26 16:44:55 · 1752 阅读 · 0 评论 -
android编译系统(一):GUN Make简介
对于大型项目,源文件通常非常多,不可能逐个编译。make工具是一款自动编译工具,可以用于大型项目编译。make具有高度灵活性:如果项目仅仅修改某几个源文件,则只需重新编译这几个源文件;如果某个头文件被修改了;则需重新编译所有引用该头文件的源文件。makefile 文件是编译信息描述文件。原创 2016-05-05 16:14:43 · 896 阅读 · 0 评论 -
番外篇:linux硬件驱动程序开发简介
本篇日志将描述如何在linux内核里面添加硬件驱动程序模块。1、程序结构:假设linux内核源码(2.6.29版)的跟目录是goldfish,要开发的驱动程序名是freggoldfish--| |--drivers--| |--freg--|原创 2016-05-30 11:58:09 · 568 阅读 · 0 评论 -
C/C++编写Android系统应用程序模块
1、在Android源代码工程环境中,可以用C/C++语言编写应用程序模块(可执行程序或者动态链接库so)。这些模块的源代码一般位于external目录下,编译结果一般位于/system/bin或者/system/lib目录下。2、Hello Word程序示例2.1、代码结构源代码根--| |--external--|原创 2016-05-30 15:25:18 · 1231 阅读 · 0 评论 -
HAL开发全流程(验证)
编写APK来验证前面的工作1、make sdk2、用Android Studio + 上一步的SDK 开发APK关键调用代码如下:package com.yuyong.joffee;import android.app.Activity;import android.os.Bundle;import android.os.JoffeeManager;原创 2016-06-06 09:59:26 · 687 阅读 · 0 评论 -
HAL开发全流程(补充)
基于《HAL开发全流程(二)》,为了让Android服务更好用。我们可以封装Service实例获取的过程,交给Context管理。注意,这一步并非必需,按照《HAL开发全流程(二)》里面开发好的Service托管给SystemServer就可以调用了。本篇日志这样做只是更加方便上层使用系统服而已。1、开发服务管理类 JoffeeManager.java/* * Copyright (原创 2016-06-03 11:01:33 · 939 阅读 · 0 评论 -
HAL开发全流程(三)
4、实现第3步(即《HAL开发全流程(二)》)中的本地方法——本地访问模块开发4.1 编写Jni文件/* * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use原创 2016-06-02 17:24:22 · 1363 阅读 · 0 评论 -
HAL开发全流程(一)
1、流程1.0 HAL层模块开发-->本地访问模块开发-->系统级Android Service(java)开发-->应用程序开发1.1 “HAL层模块”与“本地访问模块”交互要点:int hw_get_module(const char *id, const struct hw_module_t **module)(此函数定义在:源代码根/hardware/libhardware/h原创 2016-06-02 11:46:35 · 2447 阅读 · 0 评论 -
Android应用程序框架——智能指针(一)
一、用C++进行android应用程序框架层开发时(在框架层之上的开发也适用),智能指针能通过引用计数的方式智能地管理指针,不再需要我们手动使用free或者delete,大大降低了维护和使用C++指针的难度。Android系统为C++提供了三种智能指针:Lighter Pointer(轻指针)、Strong Pointer(强指针)、Weak Pointer(弱指针)。其中轻量级指针仅仅是通过原创 2016-06-15 10:48:47 · 735 阅读 · 0 评论 -
Android应用程序框架——智能指针(二)
强弱指针的分析示例如下,不同于《Android应用程序框架——智能指针(一)》,我们这里不再把RefBase.h头文件拷贝到源代码目录下,而是通过Android.mk文件去指定包含目录。源代码如下weightpointer.cpp文件#include#include#define INITIAL_STRONG_VAULE (1<<28)using namespace原创 2016-06-17 16:00:42 · 624 阅读 · 0 评论 -
Android启动过程研究(一:init进程)
一:Linux系统中的init进程内核引导时,会在用户空间创建一个名为init的特殊进程,这个是所有进程之父(系统中所有进程不是init直接创建的,就是其子孙进程创建的)。对应的程序文件为“/sbin/init”。init进程的进程号总为1,并且总是以超级管理员权限运行的。包括超级管理员在内的所有用户都不能kill init进程,唯有关闭系统才能终止该进程。二:内核态与用户态,内核空间原创 2016-06-20 17:30:43 · 1953 阅读 · 0 评论 -
Android启动过程研究(三:servicemanager进程与Binder通信机制)
一、回顾上文讲到,init进程启动的主要子进程包括shadbd:android调试桥servicemanager:重要,负责管理系统服务vold:Volume Dameon,用于挂载/管理USB存储或SD卡设备palymp3:输出启动音(zygote的启动其实还在后面很远)二、Linux内核采用了丰富的进程间通信机制,如Pipe(管道)、Signal(信号)、消息队原创 2016-06-23 10:49:23 · 622 阅读 · 0 评论 -
seandroid 如何添加被denied的权限(avc denied)
来自:http://blog.csdn.net/lewif/article/details/51130867?winzoom=1转载 2017-03-10 18:00:41 · 970 阅读 · 0 评论