NativeActivity
建议结合demo来看 native-activity
都是Activity,NativeActivity也继承于Activity,生命周期也是是完整的,但是不同于普通的activity, 在于:
- NativeActivity 会主动加载配置在mainfest android.app.lib_name 上的so, 加载代码见:
try {ai = getPackageManager().getActivityInfo(getIntent().getComponent(), PackageManager.GET_META_DATA);if (ai.metaData != null) {String ln = ai.metaData.getString(META_DATA_LIB_NAME);if (ln != null) libname = ln;ln = ai.metaData.getString(META_DATA_FUNC_NAME);if (ln != null) funcname = ln;}
} catch (PackageManager.NameNotFoundException e) {throw new RuntimeException("Error getting activity info", e);
}BaseDexClassLoader classLoader = (BaseDexClassLoader) getClassLoader();
String path = classLoader.findLibrary(libname);if (path == null) {throw new IllegalArgumentException("Unable to find native library " + libname +" using classloader: " + classLoader.toString());
}byte[] nativeSavedState = savedInstanceState != null? savedInstanceState.getByteArray(KEY_NATIVE_SAVED_STATE) : null;mNativeHandle = loadNativeCode(path, funcname, Looper.myQueue(),getAbsolutePath(getFilesDir()), getAbsolutePath(getObbDir()),getAbsolutePath(getExternalFilesDir(null)),Build.VERSION.SDK_INT, getAssets(), nativeSavedState,classLoader, classLoader.getLdLibraryPath());if (mNativeHandle == 0) {throw new UnsatisfiedLinkError("Unable to load native library \"" + path + "\": " + getDlError());
}
- 会接管的surface
getWindow().takeSurface(this);
- 会接管的输入事件的队列
getWindow().takeInputQueue(this);
- 通过loadNativeCode把app的上下文构造进去
ndk中携带了一个 android_native_app_glue
的胶水层,负责把app的上下文、传感器、输入事件传递下去。
NativeActivity相关推荐
- android activity使用,android,NativeActivity使用
android现在已经支持C/C++ NativeActivity开发 android提供 头文件.所以你要使用的话,要引入这个头文件 1,NativeActivity 入口 入口函数是void AN ...
- WF4.0:NativeActivity中的错误处理
备注:这篇文章的使用环境是.NET framework 4.0 RC 1 在WF4中创建native活动时,NativeActivity是非常强大的.其众多的功能之一是围绕错误处理. 调度子活动的时的 ...
- android用java_原来android不是只能用java写软件
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 We released the first version of the Native Development Kit, a development to ...
- 【转】Android Activity原理以及其子类描述,androidactivity
Android Activity原理以及其子类描述,androidactivity 简介 Activity是Android应用程序组件,实现一个用户交互窗口,我们可以实现布局填充屏幕,也可以实 ...
- 工作流-----WorkFlow
我们都知道对于一个OA系统来说,最重要的也是不可或缺的一个重要环节那就是对于工作流的实现,为此,最近专门在学习如何使用WorkFlow,问前辈,前辈也说道K2工作流引擎挺不错,自己同时也翻阅了一些资料 ...
- WF4.0进行单元测试
本文通过举例说明在WF4.0中如何进行单元测试. 1.简单的WF4.0活动测试 如果是一个简单的WF4.0活动,是那种没有带BookMark,也不是messaging活动,也不是长时间运行的活动.使用 ...
- WF4.0 基础篇 (十八) Flowchar
本节主要介绍WF4 中 Flowchart的使用 本文例子下载: http://files.cnblogs.com/foundation/FlowcharSample.rar 本文例子说明 Flowc ...
- rn+与android+交互,React native 与Android原生交互方式(一)
前言## 最近在做React Native开发的时候避免不了的需要原生模块和JS之间进行交互,其实RN和原生的通信大致分为两种情况:一种是Android主动向RN端发送事件和数据,另外一种是RN端被动 ...
- android系统的测试方法,运行测试 | Android 开源项目 | Android Open Source Project...
本页将介绍如何在 Linux 和 Windows 环境中运行 deqp 测试.如何使用命令行参数,以及如何使用 Android 应用包. Linux 与 Windows 环境 首先,请将以下文件及目录 ...
最新文章
- springboot后台怎么获取前端传过来的excel_开源商城系统包含后台管理和手机端
- 重学java基础第二十三课:java基础 注释
- shiro 基于springmvc中做登陆功能
- 基于Socket的.NET应用组件
- 如何在Mac OS X上安装 Ruby运行环境
- Foobar2000自用插件
- 蒙特卡洛—赌博模型笔记
- js计算当前周数及每周具体日期、每月的第一个周一
- ASP.NET课设——新闻发布系统
- RealMedia Analyzer(mp4修复软件)v0.30绿色版
- R语言使用timeROC包计算无竞争情况下的生存资料多时间AUC值、使用cox模型、并添加协变量、可视化无竞争情况下的生存资料多时间ROC曲线
- vsphere 添加 iscsi 存储设备
- setdbprefs matlab,matlab数据导入与导出
- java 热键_定义自己的热键
- 【MFC】使用TabControl创建Tab分页
- Java开发(七)for循环语句
- 疲劳驾驶检测系统的研究
- jsp+servlet学子商城项目--servlet、dao层的各项练习
- rust刷卡点地图_新版rust地图物资 | 手游网游页游攻略大全
- 【Windows】windows10 更新到1903后 vmware14/15 无法启动解决方法