android架构

AndroidSystemDebug官方指导

冷暖自知 提交于 2020-03-03 20:34:13
AndroidSystemDebug官方指导 Google是AOSP项目的主导者,关于Android开发有两大官网,在“资料收集”篇有提到就是 Android Open Source Project 与 Android Developers 官网。在这两大网站上有关于aosp项目和app开发的一切官方资料。Google公司的工作是值得认可的, 所以我们的任务第一步要整理学习前人的工作,避免重复造轮子。 本篇将过滤AOSP与developer官网提到的开发调试工具及方法。 本文只给出地址及简介 。 AOSP、Developer两大官网内容详实,建议Android系统开发者和app开发者通读,对了解Adroid OS全貌有帮助。 AuthBlog:秋城 https://www.cnblogs.com/houser0323 Contents 1. AOSP 2. Developer 1. AOSP 本章列出的内容主要关注Android系统/平台。 Git Android选择使用Git来做工程代码版本控制 Repo 简单来说,repo用来管理繁多的Git仓库。 In most situations, you can use Git instead of Repo, or mix Repo and Git commands to form complex commands. However,

Android第三十一天

徘徊边缘 提交于 2020-03-02 19:03:32
1、什么是Android的四层体系架构? <1>系统核心层(Linux Kernel) Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等; <2>执行层C/C++函数库层(Libraries)及Android Runtime 这一层通过一些C/C++库来为Android系统提供了主要的特性支持。 <3>应用程序框架层(Application FrameWork) 这一层主要提供了构建应用程序时可能用到的各种 API,Android自带的一些核心应用就是使用这些API完成的, 开发者也可以通过使用这些API来构建自己的应用程序。 <4>应用程序层(Applications) 所有安装在手机上的应用程序都是属于这一层的。 2、什么是Activity? 一个Activity通常就是一个单独的屏幕,它上面可以显示一些UI界面,可也以实现与用户的交互,获得并处理用户在屏幕上的操作,比如:点击、长按等。 所有应用的Activity都继承于android.app.Activity类。 3、Android目录结构。 <1>src:开发人员源码放置目录; <2>gen:自动生成R.java,所有的资源文件都会在R.java文件中以final static内部类的形式被注册

001-Android与iOS的比较

血红的双手。 提交于 2020-03-02 01:17:16
Android是一种基于Linux,开发源代码的操作系统,主要适用于移动设备,如智能手机和平板电脑,最初由Andy Rubin开发,2005年8月由Google收购。 Android不是为了安全设计,是为了开放而设计的。 Android和IOS对比 iOS属于类UNIX操作系统,Android是一种以Linux为基础的开放源码的操作系统。 Android采用的是Java技术,所有应用在Dalvik虚拟机上运行,Dalvik是Google专门为移动设备优化的Java虚拟机,因此Android具有成熟,存在大量可重用代码的优点,也有占内存大,运行速度低的缺点。iOS体系架构较为传统,但运行效率高,对硬件要求低,成本优势大,在现有的硬件条件下,应用运行具有最好的顺畅感,也更加省电。 Android的安全性分析: android的开源导致了恶意程序的滋生,很多应用无需权威机构审核即可随意发布,而且很多应用会申请一些与它本身功能并灭有什么关系的权限。 android系统很多应用无需Root就能替换掉一些系统的核心应用,如输入法,市场,通信录。 iOS安全性分析: iOS应用的审核上架都是由苹果公司负责,应用的收益,支付,分成都有一套完整的体系。 苹果对涉及系统核心层的应用都采取封闭的措施。 来源: CSDN 作者: 云袖er 链接: https://blog.csdn.net/qq

Android深入浅出之Binder机制

旧城冷巷雨未停 提交于 2020-02-29 17:07:08
Android 深入浅出之 Binder 机制 一 说明 Android 系统最常见也是初学者最难搞明白的就是 Binder 了,很多很多的 Service 就是通过 Binder 机制来和客户端通讯交互的。所以搞明白 Binder 的话,在很大程度上就能理解程序运行的流程。 我们这里将以 MediaService 的例子来分析 Binder 的使用: <!--[if !supportLists]--> l <!--[endif]--> ServiceManager ,这是 Android OS 的整个服务的管理程序 <!--[if !supportLists]--> l <!--[endif]--> MediaService ,这个程序里边注册了提供媒体播放的服务程序 MediaPlayerService ,我们最后只分析这个 <!--[if !supportLists]--> l <!--[endif]--> MediaPlayerClient ,这个是与 MediaPlayerService 交互的客户端程序 下面先讲讲 MediaService 应用程序。 二 MediaService 的诞生 MediaService 是一个应用程序,虽然 Android 搞了七七八八的 JAVA 之类的东西,但是在本质上,它还是一个完整的 Linux 操作系统

Android深入浅出之Binder机制

て烟熏妆下的殇ゞ 提交于 2020-02-28 22:04:31
Android 深入浅出之 Binder 机制 一 说明 Android 系统最常见也是初学者最难搞明白的就是 Binder 了,很多很多的 Service 就是通过 Binder 机制来和客户端通讯交互的。所以搞明白 Binder 的话,在很大程度上就能理解程序运行的流程。 我们这里将以 MediaService 的例子来分析 Binder 的使用: l ServiceManager ,这是 Android OS 的整个服务的管理程序 l MediaService ,这个程序里边注册了提供媒体播放的服务程序 MediaPlayerService ,我们最后只分析这个 l MediaPlayerClient ,这个是与 MediaPlayerService 交互的客户端程序 下面先讲讲 MediaService 应用程序。 二 MediaService 的诞生 MediaService 是一个应用程序,虽然 Android 搞了七七八八的 JAVA 之类的东西,但是在本质上,它还是一个完整的 Linux 操作系统,也还没有牛到什么应用程序都是 JAVA 写。所以, MS(MediaService) 就是一个和普通的 C++ 应用程序一样的东西。 MediaService 的源码文件在: framework\base\Media\MediaServer\Main

Android Studio 基于cmake 引入so库

筅森魡賤 提交于 2020-02-28 09:38:05
1. 搭建环境 环境变量: sudo apt-get remove openjdk* export JAVA_HOME=/opt/java/jdk1.8.0_211 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export NDK=/opt/java/android-ndk-r13b export ANDROID_SDK=/opt/Sdk export PATH=.:${JAVA_HOME}/bin:$PATH:$NDK:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools export ANDROID_SDK=/opt/Sdk export PATH=.:${JAVA_HOME}/bin:$PATH:$NDK:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools export CC=/opt/java/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc echo $CC #编译arm 下执行gcc export

ubuntu下编译ffmpeg的过程

最后都变了- 提交于 2020-02-28 01:02:53
后续一段时间准备音视频相关知识的学习,所以先编译ffmpeg做练习用. 以最新版本的android api 29, ndk21, ffmpeg4.2,编译ffmpeg库文件. 1,环境配置, 1)安装yasm,如果没有安装会报nasm not found的错误. 下载 http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz 解压后,进入目录:cd yasm-1.3.0 执行配置 ./configure 编译 :make 安装 make install (这一步使用root权限) 2,ndk的配置, 1)下载 https://developer.android.google.cn/ndk/downloads/ 选择 linux版本的ndk 2)解压后,配置ndk环境 vim ~/.bashrc # 在文件末尾添加 export NDKROOT=/home/**/ndk/android-ndk-r21 exprot PATH=$NDKROOT:$PATH # 保存退出,更新一下环境变量 source ~/.bashrc 或者配置 ~/.profile文件,功能是类似的. .bashrc和.profile这两种配置环境参数的区别,大概时profile是以login方式进入bash环境运行的,意思是要用户登录才行;

Android架构_模块化

 ̄綄美尐妖づ 提交于 2020-02-28 00:52:41
Android项目模块化/组件化开发(非原创) Android 模块化完整方案实现 Android 模块化/组件化 方案实践 Android工程化实践:模块化 Android模块化实践 来源: CSDN 作者: yzpyzp 链接: https://blog.csdn.net/yzpbright/article/details/104541108

android binder 收藏文献

混江龙づ霸主 提交于 2020-02-26 18:11:54
Android Service 两种启动方式详解(总结版) https://www.jianshu.com/p/4c798c91a613 一篇文章了解相见恨晚的 Android Binder 进程间通讯机制 https://blog.csdn.net/freekiteyu/article/details/70082302 Binder详解 https://blog.csdn.net/yangzhiloveyou/article/details/14043801 Binder 系列 1—Binder Driver 初探 http://gityuan.com/2015/11/01/binder-driver/ Android - Binder 驱动 https://www.cnblogs.com/Doing-what-I-love/p/5530173.html Android 跨进程通信 IPC 之 8——Binder 驱动 https://www.jianshu.com/p/2efc0971c3e0 Android Binder http://kernel.meizu.com/android-binder.html Android Binder设计与实现 - 实现篇 https://www.cnblogs.com/albert1017/p/3849585.html 彻底理解

Android系统启动-zygote篇

那年仲夏 提交于 2020-02-26 09:38:02
copy from : http://gityuan.com/2016/02/13/android-zygote/ 基于Android 6.0的源码剖析, 分析Android启动过程的Zygote进程 /frameworks/base/cmds/app_process/App_main.cpp /frameworks/base/core/jni/AndroidRuntime.cpp /frameworks/base/core/java/com/android/internal/os/ - ZygoteInit.java - Zygote.java - ZygoteConnection.java /frameworks/base/core/java/android/net/LocalServerSocket.java /system/core/libutils/Threads.cpp 一. 概述 Zygote是由 init进程 通过解析init.zygote.rc文件而创建的,zygote所对应的可执行程序app_process,所对应的源文件是App_main.cpp,进程名为zygote。 service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server class