NDK和JNI,Framwork含义

1. JNI介绍

1.1 简介

定义:Java Native Interface,即 Java本地接口
作用: 使得Java 与 本地其他类型语言(如C、C++)交互, 即在 Java代码 里调用 C、C++等语言的代码 或 C、C++代码调用 Java 代码
特别注意:
JNI是 Java 调用 Native 语言的一种特性
JNI 是属于 Java 的,与 Android 无直接关系

1.2 为什么要有 JNI

背景:实际使用中,Java 需要与 本地代码 进行交互
问题:因为 Java 具备跨平台的特点,所以Java 与 本地代码交互的能力非常弱
解决方案: 采用 JNI特性 增强 Java 与 本地代码交互的能力

NDK

  1. NDK介绍
    2.1 简介
    定义:Native Development Kit,是 Android的一个工具开发包。
    NDK是属于 Android 的,与Java并无直接关系。
    作用:快速开发C、 C++的动态库,并自动将so和应用一起打包成 APK。
    即可通过 NDK在 Android中 使用 JNI与本地代码(如C、C++)交互。
    应用场景:在Android的场景下 使用JNI。
    即 Android开发的功能需要本地代码(C/C++)实现。
    在这里插入图片描述在这里插入图片描述

3. NDK与JNI关系

示意图
在这里插入图片描述
原文链接:https://blog.csdn.net/carson_ho/article/details/73250163

4.Framework

android架构
在这里插入图片描述 Android架构主要分为分为四部分,从下往上以此为LINUX KERNEL(内核层),LIBRARIES(共享库,以及android运行时库),APPLICATION FRAMEWORK(应用框架层),APPLICATION(应用程序)。而本文主要分析就是APPLICATION FRAMEWORK(应用框架层)。

framework简介

在这里插入图片描述

系统服务

SystemServer 是framework中非常重要的一个进程,它是在虚拟机启动后运行的第一个java进程,SystemServer启动其他系统服务,这些系统服务都是以一个线程的方式存在于SystemServer进程中。

b) PowerManagerService 电源管理服务

c) ActivityManagerService 最核心的服务之一,管理Activity

d) TelephonyRegistry 通过该服务注册电话模块的事件响应,比如重启、关闭、启动等

e) PackageManagerService 程序包管理服务

f) AccountManagerService 账户管理服务,是指联系人账户,而不是Linux系统的账户

g) ContentService ContentProvider服务,提供跨进程数据交换

h) BatteryService 电池管理服务

i) LightsService 自然光强度感应传感器服务

j) VibratorService 震动器服务

k) AlarmManagerService 定时器管理服务,提供定时提醒服务

l) WindowManagerService Framework最核心的服务之一,负责窗口管理

m) BluetoothService 蓝牙服务

n) DevicePolicyManagerService 提供一些系统级别的设置及属性

o) StatusBarManagerService 状态栏管理服务

p) ClipboardService 系统剪切板服务

q) InputMethodManagerService 输入法管理服务

r) NetStatService 网络状态服务

s) NetworkManagementService 网络管理服务

t) ConnectivityService 网络连接管理服务

Framework的范围

Framework负责APPLICATION FRAMEWORK、ANDROID RUNTIME和LIBRARIES三部分。

a) 系统Manager和Service相关内容

b) 系统接口和jni相关内容

c) 系统功能相关内容(watchdog、vold、binder等)

d) 虚拟机dalvik、art

e) 系统so库相关内容

f) CTS、GTS等预分析

g) Monkey预分析

h) 系统稳定性问题(系统ANR、冻屏、重启、蓝屏等)

i) 系统性能问题

核心服务介绍

a) ActivityManagerService

ActivityManagerService(以下简称:AMS)是android系统的一个系统服务,是应用进程的管理服务端,直接的控制了应用程序的各个行为,保证了系统中不同的应用程序之间能够和谐的合理的进行调度运行。

AMS是android上层系统最核心的模块之一,其主要的工作是对所有的应用进程及其进程中的四大组件进行管理。(当然这里面也涉及了一些window、电源、权限等内容)

对进程的管理包括:进程的创建与销毁、进程的优先级调整。

对组件的管理包括:Activity的调度管理、Service的管理、Broadcast的分发、以及ContentProvider管理。

framework基础

语言基础:Java、C++、C

技术基础:进程间通信,多线程,jni,linux相关知识,binder。

原文链接:https://blog.csdn.net/fu_kevin0606/article/details/79532710

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值