- 博客(45)
- 资源 (98)
- 收藏
- 关注
转载 Android系统启动-SystemServer下篇
转自:http://gityuan.com/2016/02/20/android-system-server-2/基于Android 6.0的源码剖析, 分析Android启动过程的system_server进程frameworks/base/core/java/android/app/ActivityThread.javaframeworks/base/core/jav
2016-05-31 15:43:43 940
转载 android启动过程之init.rc文件浅析
1. init.rc文件结构文件位置:init.c : /system/core/initinit.rc : /system/core/rootdir首先init.rc文件是以模块为单位的,每个模块里的内容都是一起执行的,模块分为3种类型:on、service、import。我们可以看下init.rc文件是怎么写的:1.importimport /init
2016-05-25 17:01:56 1195
转载 linux fuse文件系统在 android fuse sdcard的 运用
一、android GB 及JB、KK版本内置sdcard效果对比图从上面效果对比图,我们可以发现android fuse sdcard 有如下两个优点:1、使用fuse后 /data 和 /sdcard0 是共离一块分区,这块分区的空间/data和/sdcard0 动态享用, 用户使用灵活。2、去掉了fat32文件系统,这样也免去了一个l
2016-05-25 13:58:42 2995
原创 Makefile中关于all和.PHONY
请编写一个makefile同时编译、链接下面两个程序:main1.c:#includeint main(void){ printf("main1\n");}main2.c:#includeint main(void){ printf("main2\n");}【分析】:这里需要生成两个可执行文件main1和main2(两个目标)。由于m
2016-05-21 12:20:09 755
转载 Android 开机速度优化-----ART 预先优化
Android开机速度我们知道在L及以后的版本中,当系统升级后,或者恢复出厂设置后,或者第一次开机,其启动时间往往很长,短的有3-4分钟,而长的多达10分钟,那么是原因导致的,我们将分析其原因.ART 的前世今生我们知道,在Android的最初的几个版本,Android的app 运行在Dalvik中,完全是解释性执行.在Android2.2中,Google把
2016-05-20 17:39:35 7613 1
原创 linux标准输入/输出/错误
1. make是什么? make是linux下一个非常强大的命令,简单点就是你要编译你的源代码就得靠他了。2. 2>&1是什么意思? 0 stdin,1 stdout,2 stderr 2>&1应该分成两个部分来看,一个是2>以及另一个是&1, 其中2>就是将标准出错重定向到某个特定的地方;&1是指无论标准输出在哪里。 所以2>
2016-05-16 17:31:44 1855
转载 Makefile中常用的函数
在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $()或是 ${}这里,就是函数名,make支持的函数不多。是函数的参数,参
2016-05-16 16:57:36 321
转载 makefile中的patsubst
1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$ mkdir test$ cd test$ mkdir sub在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件建立一个简单的Makefile
2016-05-16 16:37:52 669
转载 Android.mk 使用 环境 小结
一、将无源码的 APK 和它 依赖的库预置进系统,此apk可以升级二、++++++++++++++++++++++++++++++一、将无源码的 APK 和它 依赖的库预置进系统,此apk可以升级---------- cut here ------------------LOCAL_PATH := $(call my-dir)#预置aliuyi.apkinc
2016-05-16 15:49:16 490
转载 c++构造函数详解
c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初学者有所帮助。1. 构造函数是干什么的123456789
2016-05-14 18:04:22 608
转载 Android 各层中日志打印功能的应用(七十五)
Android 各层中日志打印功能的应用1. HAL层头文件:#include 对应的级别 打印方法 VERBOSE LOGV()DEBUG LOGD()INFO LOGI()WARN LOGW()ERROR LOGE()方法:LOGD("%d, %s", int, char* )2. JNI层头文件:#include 对应的
2016-05-14 17:29:59 1394
转载 undefined reference问题总结
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1.
2016-05-14 17:21:42 610
转载 Android内核开发:在源码树中添加新的app应用
本文是《Android内核开发》系列的第十二篇文章,上一篇文章介绍了如何从源码中删除出厂的app应用,本文则在此基础上,详细介绍一下如何在Android内核源码树中添加一个新的app应用。网上也有介绍怎么在源码中添加新的app应用的博文,但大都数只介绍了不含有jni本地代码的app的添加方法,本文会更加全面地介绍三种不同类型的app应用如何添加到Android内核源码树中编译。
2016-05-13 20:32:02 1343
转载 Android内核开发:从源码树中删除出厂的app应用
本文是《Android内核开发》系列的第十一篇文章,本文重点介绍如何从Android源码中删除出厂的app应用。上一篇文章中提到过,系统出厂的app应用,其实就是被安装到/system分区的app,这些app在Android源码树中被编译后打包到了system.img镜像中,系统启动时,以只读的方式挂载/system目录,因此,非root手机用户是无法删除这些app的。
2016-05-13 20:29:07 661
转载 Android内核开发:浅析APK的安装过程
本文是《Android内核》开发系列文章的第十篇,上一阶段,我们重点学习和分析了Android系统的启动过程,那么,从本文开始,准备介绍一下如何从Android源码中添加、修改、删除系统级别的APP应用。作为开篇,我们先从简单的理论入手,介绍一下Android系统中的APK文件究竟是个什么东西?它是如何安装到系统中去的?我们在学习和了解一项新事物的时候,最快速的方法往往是与已知
2016-05-13 20:24:43 483
转载 Android内核开发:系统启动速度优化
在学习新知识的过程中,我一直很推荐结合实战任务去学习,只有经历实战,才能加深对理论知识的理解。《Android内核开发》系列已经写了八篇了,本文就结合前面的内容,给大家布置一个实战任务: 优化Android系统的启动速度。这里我简单介绍一下优化的基本思路和涉及的文件,具体细节由大家自己在实践去摸索,提高自己Google能力和解决问题的能力。Android系统
2016-05-13 20:23:46 2066
转载 Android内核开发:学会分析系统的启动log
本文是《Android内核开发》系列的第八篇文章,本文主要关注如何分析Android系统的启动log,学会通过搜索重要的TAG标签,找到Android启动过程中的重要节点。要学会分析系统的启动log信息,首先得了解Android系统的启动过程,建议先阅读《Android内核开发:图解Android系统的启动过程》这篇文章,它详细介绍了Android系统的启动过程。其次,你需要知
2016-05-13 20:22:18 755
转载 Android内核开发:图解Android系统的启动过程
本文是《Android内核开发》系列的第六篇文章,前面的几篇文章介绍了Android内核开发相关的基础知识,包括:Android源码的下载、版本和分支介绍、编译和烧写等等,从本文起就要开始真正地进行Android内核的学习及实战了。学习任何软硬件系统,研究系统启动过程都是一种非常有效地起步手段,搞Android内核开发也不例外。网上有很多文章对Android启动相关代码进行分析
2016-05-13 20:02:49 510
转载 Android内核开发:系统分区与镜像文件的烧写
本文是《Android内核开发》系列的第五篇文章,本文重点介绍如何把编译输出的镜像文件烧写到Android设备中。玩过刷机的朋友肯定对fastboot这个工具并不陌生,它是Android SDK中提供的一种开发工具,支持通过USB线将手头的镜像文件更新/烧录到Android设备中,常用的fastboot烧录过程如下:12
2016-05-13 20:01:54 3328
转载 Android内核开发:系统编译输出的镜像文件
本文是《Android内核开发》的第四篇文章,主要介绍一下源码编译输出的几个重要的镜像文件,这里把bootloader源码和Linux内核源码的编译输出也算在其中,因为毕竟Android系统缺少了这两个部分在设备上也是跑不起来的。1. MLO, u-boot.img 任何操作系统的启动,都离不开“引导程序”,比如桌面Windows系统的BIOS、桌面Linux系
2016-05-13 19:59:34 2256
转载 Android内核开发:理解和掌握repo工具
由于Android源码是用repo工具来管理的,因此,搞Android内核开发,首先要搞清楚repo是什么东西,它该怎么使用?作为《Android内核开发》系列文章的第二篇,我们首先谈谈对repo工具的理解和使用。1. repo是什么?repo是一种代码版本管理工具,它是由一系列的Python脚本组成,封装了一系列的Git命令,用来统一管理多个Git仓库
2016-05-13 19:54:00 539
转载 我的编程经验
转自:http://ticktick.blog.51cto.com/823160/1577126从写一行“Hello World”到如今,已经有七八年了,回想起来,真正让自己技术得到提升的关键点有三个方面,一个是“实战项目”,一个是“技术书籍”,还有一个就是“开源代码”。毫无疑问,“实战项目”永远是积累编程经验最重要的途径,项目越复杂,开发中遇到的问题越多,经验的积累也
2016-05-13 19:37:45 557
转载 Android开发实践:如何设置NDK的编译选项
转自:http://ticktick.blog.51cto.com/823160/1734777本文是我的《Android NDK开发》系列的又一篇文章,上篇文章中,我分享了一个可以自动添加源文件列表的 Android.mk 示例模板,方便大家快速地搭建起完整的 NDK 开发工程框架,本文则主要探究几个主要的 NDK 编译选项的配置,其中包括:APP_ABI、LOCAL_LDLIBS、
2016-05-13 19:35:30 2576
转载 Android内核开发:为什么刷机后系统第一次启动会很慢?
转自:http://ticktick.blog.51cto.com/823160/1677216在做Android内核开发的过程中,我们会发现,每次编译完系统源码,烧录到设备/手机中后,第一次启动都会很慢很慢,要好几分钟甚至十几分钟,为什么会出现这样的现象呢?系统刷机后第一次启动与后面再次启动有什么不同呢?要解答这个问题,首先我们需要了解一下Android Dalvik
2016-05-13 19:32:52 902
原创 C语言之四种回调函数写法(五)
0.结构体版C99回调,demo.c#include <stdio.h>struct snd_soc_codec_driver { int (*write)(unsigned int, unsigned int); //等价于无参的,这样相当于变长参数,自己可以随意写参数: int (*write)();};int callback_write(un...
2016-05-13 19:09:14 1319
转载 写给新入职的毕业生们(二)
转自:http://ticktick.blog.51cto.com/823160/1678948离去年写的那一篇《写给新入职的毕业生们》差不多一年时间了,这一年来成长了不少,又有了许多新的感悟和心得,在此分享给大家。1. 如何快速的积累和提高新入职场,老板分配的技术方向往往都会跟自己的专业并不相关,因此,新人大都数都会有一个快速学习的过程。比如互联
2016-05-13 19:06:48 440
转载 写给新入职的毕业生们
转自:http://ticktick.blog.51cto.com/823160/1528437今天,我作为“前辈”给公司新入职的应届毕业生们做了一次经验分享,简单整理了一下演讲的内容,希望对其他人也能有所帮助。1. 进入公司与校园有什么不同 ?作为一个技术型的公司,其实公司内部的办公环境与在学校实验室没有太大的区别,每个人都有自己的位置,大家各
2016-05-13 19:05:29 867
转载 实战开发经验:是什么阻碍了我们跨平台
什么是跨平台?举个简单的例子,就是你写的程序在windows下可以运行,在linux下经过简单的处理后也能运行。标准定义:泛指程序语言、软件或硬件设备可以在多种作业系统或不同硬件架构的电脑上运作。为什么要关注跨平台?其实,如果你只希望你的程序在特定的软硬件环境下运行的话,的确可以不用关注和考虑跨平台。但是,这样的程序不
2016-05-13 19:01:40 538
转载 Android内核开发:如何统计系统的启动时间
转自:http://ticktick.blog.51cto.com/823160/1660996本文是《Android内核开发》系列的第七篇文章,通过上一篇文章《Android内核开发:图解Android系统的启动过程》我们大致了解了Android系统的启动过程,那么本文就从实践的角度,简单介绍一下如何统计Android系统的启动时间。这里所说的统计系统的启动时间,
2016-05-13 16:32:41 2876
转载 android 5.1.1开机优化(framework层)
转自:http://blog.csdn.net/xxm282828/article/details/49095839Android原生系统中对于开机这一块并未做深度的优化,由于领域的限制,这里仅仅对framework中的一部分优化提出来说一下。一、涉及到的类文件./base/core/Java/com/android/internal/os/ZygoteInit.java
2016-05-13 14:57:05 1571
转载 理解Android编译命令
一、引言关于Android Build系统,这个话题很早就打算整理下,迟迟没有下笔,决定跟大家分享下。先看下面几条指令,相信编译过Android源码的人都再熟悉不过的。source /opt/android1204_17.conf source setenv.shlunchmake -j12记得最初刚接触Android时,同事告诉我用上面的指令就可以编译Andr
2016-05-12 15:04:58 663
转载 Am命令用法
一、概述作为一名开发者,相信对adb指令一定不会陌生。那么在手机连接adb后,可通过am命令做很多操作:(1) 拨打电话10086adb shell am start -a android.intent.action.CALL -d tel:10086(2) 打开网站www.gityuan.comadb shell am start -a androi
2016-05-12 14:54:26 16709
转载 ps进程命令
ps进程命令在adb shell终端,输入 ps,可查看手机当前所有的进程状态,其中ps的英文全称是Process Status。1. ps命令参数-t 显示进程里的所有子线程-c 显示进程耗费的CPU时间-p 显示进程优先级、nice值、调度策略-P 显示进程,通常是bg(后台进程)或fg(前台进程)-x 显示进程耗费的用户时间和系统时间,格式:(u:0, s:0),
2016-05-12 11:37:36 754
转载 Android系统启动过程详解
转自:http://www.cloudchou.com/android/post-361.html前言一直想研究Android完整的启动过程,网上看了不少资料,也看了书上的一些说明,对这些观点有些怀疑,于是自己分析了系统启动的完整过程。从内核启动第一个用户程序init开始说起,直到Home应用的启动,每一步都有源代码展示。希望能解除读者对Android系统启动过程中的困惑,若有什么
2016-05-11 18:29:25 494
原创 Android基础知识之智能指针:强指针和弱指针(五十)
Android手机操作系统既然是开源的操作系统。那么在具体的文件夹中就会存放着各种相关功能的开源代码。我们在使用的时候可以根据这些源代码进行相应的修改就能轻松的完成我们所需的功能。在这里大家就一起来看看Android智能指针的相关源码解读以及应用方法。在Android的源代码中,经常会看到形如:sp、wp这样的类型定义,这其实是Android中的智能指针。智能指针是C++中的一个概念,通过
2016-05-11 17:01:48 957
转载 Android应用开发:Dialog使用及示例
在Android开发中,我们在很多情况下都会使用到Dialog,即弹出框。如弹出一个登录框,又如有操作需要用户二次确认等情况。本片文章就来阐述一下如何在Android开发过程中,正确的使用Dialog。Dialog的设计哲学Dialog是一个弹出框,小的窗口,用来提示用户确认下一步的操作(在确认前这个操作并不执行)或展示额外信息(如下一步的必然操作中确实需要用户
2016-05-11 16:46:50 1475
转载 jstring转换到C语言所用的char
在做JNI的时候遇到了一个小问题,现在已经搞定,记录下来。关于Java层传递下的string参数,在C语言中定义为jstring。但是C语言在使用的时候需要用到char类型,这里就出现了需要转换的情况 。方法如下:/*这里假设上层传递的参数都是准确有效的,这里只是在C中用*//*相关变量的定义如下*/jstring jstr;char *str;
2016-05-11 14:25:15 614
转载 在Android关机中插入脚本
一、Android开机运行脚本流程 在Android启动的过程中,在kernel/init/main.c中的start_kernel->rest_init->kernel_init->init_post->run_init_process("/sbin/init")中启动了init相关脚本, [plain] view plain copy
2016-05-11 14:23:32 811
转载 Android关机流程解析
https://developer.android.com/intl/zh-CN/reference/android/os/PowerManager.html在PowerManager的API文档中,给出了一个关机/重启接口:public void reboot (String reason)对于这个接口的描述很简单,就是几句话。接口的作
2016-05-11 13:59:15 714
原创 Android handleMessage和sendMessage 简单示例
用Handler可解决在非主线程中无法更改UI的问题。先在主线程中定义handler,接收别的线程的Message,改变UI,在另一线程中执行任务,并用handler发送Message到UI线程,Message提供了携带数据的方法 setData(Bundle data)1.//主线程中定义handler,接收别的线程的Message,改变UI
2016-05-10 15:48:21 6492
H.264标准协议(官方中文版)
2020-10-28
HxD_Hex编辑器中文版.zip
2020-09-12
MultimediaFrameworkOverview.zip
2020-09-01
Gstreamer-Openmax-gst-openmax.zip
2020-08-17
GStreamer中文开发手册.zip
2020-07-22
win10removeAll.zip
2020-06-25
vcxsrv-64.1.20.8.1.zip
2020-06-20
debug_hybris_demo.zip
2020-06-03
手写Fuchsia第一个app
2020-03-16
第五代加固技术ARM VMP原理实现与应用.zip
2020-03-01
AUDIO CODEC DAPM详解.zip
2019-12-30
蓝牙Audio调试.zip
2019-12-27
Universal Serial Bus Device Class Definition for Audio Devices.zip
2019-11-16
802.11 Reason Code中文说明(全)
2019-05-21
彻底禁掉Win10 Defender自启动
2022-12-24
Elecard HEVC Analyzer_For_Windows.zip
2021-01-06
JM-H264参考手册
2020-10-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人