首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

eBPF在android上的使用

BCC在android系统上也可以运行,但是要对系统进行一定程度的修改,后续可能会写单独的文章进行讲解。对于内核开发者我还比较关注怎么自己来实现监控的功能,下文也将做简单的讲解。 ?...四、eBPF在Android平台的使用 经过上面枯燥的讲解,大家应该对eBPF有了基础的认识,下面我们就来通过android平台上的一个监控性能的小例子来实操下。...4)使用bpf_trace_printk函数打印debug信息,会直接打印信息到ftrace中。 5)在map中查找指定key。 6)更新指定的key的值。 3....2)取得map的fd, bpf_obj_get会直接调用bpf的系统调用。 3)将fd包装成BpfMap,android在BpfMap.h中定义了很多方便的函数。 4)遍历map回调函数。...至此,如何在android平台使用eBPF实现统计系统中每个pid在一段时间内系统调用的次数的功能就介绍完了。

4.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在Android P上使用Http

    前言 不少同学在适配Android P的时候会遇到not permitted by network security policy问题: //使用HttpUrlConnection时遇到的异常 W/System.err...表示,为保证用户数据和设备的安全,针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行...Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat 和 Oreo...在Android P系统的设备上,如果应用使用的是非加密的明文流量的http网络请求,则会导致该应用无法进行网络请求,https则不会受影响,同样地,如果应用嵌套了webview,webview也只能使用...第二种方案也可行,但并不是长久之计,和大应用商店会纷纷效仿Google Play对应用target有限制,所以这只是缓兵之计。但现实往往并不能迅速将所有接口替换为https。

    2.1K20

    MongoDB在Android上的使用体验

    【前言】一般来讲,Android使用的数据库都是自带的SQLite数据库。Web重量级的MySQL、Orcacle、NOSQL等都不适用于Android项目的开发。...但是我发现了一个Web上最近几年比较火的一个数据库 ---- MongoDB。查看它的官网发现,它还可以用于Android开发,而且官方文档也给出了一些API说明。...于是我决定写下这篇博客分享一下MongoDB在Android上怎么使用。...【说明】:MongoDB也可以在iOS上面使用,我是做安卓开发的,本文只讲解MongoDB在Android上面的使用,iOS的使用情况请上MongoDB官网自行查阅。...'org.mongodb:stitch-android-sdk:4.1.0' } 然后在module的build.gradle的android节点里面文件中添加java 1.8支持: android

    3.7K20

    ProGuard 在 Android 上的使用姿势

    如果以上还不足以说服您使用 ProGuard,其实移除无用代码和混淆所有名称还有其他更多的优化效果: 在一些版本的 Android 设备上,DEX 代码会在安装或者运行时被编译成机器码。...每个 Android 应用都应该使用代码压缩吗?我认为是的! 但是在您激动的跳起来之前,请先继续阅读下去。当您开启 ProGuard 时,在某些非常微妙的情况下会让您的应用崩溃。...当您只从 XML 资源引用您的代码会时(通常使用底层的反射),这个情况也会发生。 在一次 Android 典型的构建过程中,AAPT(处理资源的工具)会生成一个额外的 ProGuard 规则文件。...这些警告的一个原因就是,您的构建路径中没有加入需要依赖的 JARs,如使用了 provided (仅编译时)依赖。而有时候,在 Android 上这些代码的依赖在运行时并不会被真正的调用。...现在您可能会尝试使用 -ignorewarnings 选项直接忽略所有的警告,但这通常不是个好注意。在某些情况下,ProGuard 的警告确实有助于您发现闪退的罪魁祸首和关于您配置上的其他问题。

    2.6K40

    在 4G 内存的机器上,申请 8G 内存会怎么样?

    正文 看到读者在群里讨论这些面试题: 其中,第一个问题「在 4GB 物理内存的机器上,申请 8G 内存会怎么样?」存在比较大的争议,有人说会申请失败,有的人说可以申请成功。...32 位操作系统的场景 现在可以回答这个问题了:在 32 位操作系统、4GB 物理内存的机器上,申请 8GB 内存,会怎么样?...64 位操作系统的场景 在 64 位操作系统、4GB 物理内存的机器上,申请 8G 内存,会怎么样?...内存闲置:应用程序在启动阶段使用的大量内存在启动后往往都不会使用,通过后台运行的守护进程(kSwapd),我们可以将这部分只使用一次的内存交换到磁盘上为其他内存的申请预留空间。...简单总结下: 在 32 位操作系统,因为进程理论上最大能申请 3 GB 大小的虚拟内存,所以直接申请 8G 内存,会申请失败,报错 Cannot allocate memory 在 64位 位操作系统,

    2.2K40

    如何正确的在 Android 上使用协程 ?

    第一类是 Medium 上热门文章的翻译,其实我也翻译过: 在 Android 上使用协程(一):Getting The Background 在 Android 上使用协程(二):Getting started...在 Android 上使用协程(三) :Real Work 说实话,这三篇文章的确加深了我对协程的理解。...在 Android 中,一般是不建议直接使用 GlobalScope 的。那么,在 Android 中应该如何正确使用协程呢?再细分一点,如何直接在 Activity 中使用呢?...如何配合 ViewModel 、LiveData 、LifeCycle 等使用呢?我会通过简单的示例代码来阐述 Android 上的协程使用,你也可以跟着动手敲一敲。...协程在 Android 上的使用 GlobalScope 在一般的应用场景下,我们都希望可以异步进行耗时任务,比如网络请求,数据处理等等。当我们离开当前页面的时候,也希望可以取消正在进行的异步任务。

    2.8K30

    使用Termux在Android上运行SSH服务器

    借助出色的Termux终端仿真器应用程序,您可以在Android上运行SSH服务器。 以前,我使用SSHDroid来实现此目的,但是使用Termux更好,因为您可以使用包管理器工作。...sshd 您的ssh服务正在端口8022上运行,以下是测试命令 ssh localhost -p 8022 添加您的公钥 您无法在Termux中进行密码身份验证,因此需要将OpenSSH公钥放入~/...如果还没有OpenSSH密钥对,则可以使用以下命令生成一个在你需要使用ssh登录的机器上: ssh-keygen 您可以输入或不输入密码,如果没有另外指定,您的密钥对将保存在~/.ssh/id_rsa...然后可以使用以下命令将其添加到~/.ssh/authorized_key中,注意这个命令在这里只是简单说明,并不是你就可以简单重定向到你Android手机,但是实际如果你要将你的id_rsa.pub放到...OpenSSH 如果您使用的是OpenSSH(在Linux或Cygwin上),则可以直接使用它: ssh $IP -p 8022 希望将来Termux允许将sshd注册为适当的服务,它将在系统启动时自动启动

    4.5K20

    在CentOS 7上查看和管理内存使用情况

    在Linux系统中,内存管理是一个至关重要的方面,尤其在生产环境中,了解系统内存的使用情况可以帮助管理员优化系统性能,检测内存泄漏,合理分配资源,从而确保系统的稳定运行。...-g:以GB为单位显示内存使用情况。 -t:在输出的最后一行显示总内存使用情况。 -s :周期性地显示内存使用情况,间隔时间为指定的秒数。...内存优化技巧 减少缓存压力:在服务器上运行大型应用程序时,缓存可能会占用大量内存。...合理配置交换空间:确保交换空间的大小合适,以便在物理内存不足时,系统能够正常运行。 调整OOM Killer策略:在内存紧张时,OOM Killer会终止一些进程。...总结 本文详细介绍了在CentOS 7系统中使用free、top、ps等命令查看和管理内存使用情况的方法,以及如何进行系统内存分析与优化。

    78210

    Android内存篇(二)---JVMTI在Anroid8.1下的使用

    前言 上一篇《Android内存篇(一)---使用JVMTI监控应用》中已经介绍了Android的JVMTI内存监控,文章最后我也提到了,虽然代码中anroid8.0通过反射开启JVMTI的监控,但是项目中的代码并不能用...,在JNI里C++报空指针的问题,也是因为自己的产品中用的Android设备正好是8.1的,实际使用时发现的这个问题,所以就有了这篇针对Android8,1的JVMTI使用 Android8.1运行错误...在代码中加入判断mJvmtiEnv是不是空的,然后再运行 输出的日志上面显示mJvmtiEnv是空的,那就找这个指针什么时候赋值的,从代码中可以看到,是开启JVMTI的agent时回调给赋值。...后面做了几个测试后,也验证了这一结果,一个静态函数反射回调后改变值,正常输出还是原值,在反射中设置的函数回调可以正常显示到反射回调后得到的值。...实现效果 改完后,我们来看一下运行结果 重新运行后,可以看到jvmti中写入了方法OutOfMemoryError的记录,因为我在MainActivity中加入了Try Catch,所以异常也捕获到了

    62820

    ​Android aapt 在 Mac 和 Windows 上使用方法小结

    和尚我因为公司项目在小米市场上线时被拒,提示 apk 解析错误,需要用 aapt 解析查看安装包是否正常。以前还真的没有接触过 aapt 工具。...据了解,aapt 是 Android SDK 自带的工具,即 Android Asset Packaging Tool,是一个管理资源文件的工具 。看网上教程很简单,然而和尚在使用过程中却各种不能用。...Mac 环境 终端直接输入 aapt dump badging + 文件路径,结果查不到相应指令,嘲笑自己太天真; image.png 查询得知,直接应用需要,已经安装并配置好了 Android...将完整的路径输入终端:/Users/…/Library/Android/sdk/build-tools/26.0.2/aapt ,成功; 终端输入:/Users/…/Library/Android/sdk...在本地找到 SDK 下的 aapt.exe 程序; ? cmd 命令输入 aapt.ext 整体路径; ? cmd 命令 …/…/…/aapt.exe v 即可查看 aapt 版本; ?

    2.7K20

    【Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( JNI 传递 Bitmap | 获取位图信息 | 获取图像数据 | 图像数据过滤 | 释放资源 )

    内存优化】libjpeg-turbo 函数库交叉编译与使用 ( 交叉编译脚本编写 | 函数库头文件拷贝 | 构建脚本配置 | Android Studio 测试函数库 ) 中 对 libjpeg-turbo...代码示例 : // 声明 位图信息, 该变量作为返回值使用 // 引用自 bitmap.h AndroidBitmapInfo info; // 从 bitmap 中获得信息位图信息...JavaVM 调用 AttachCurrentThread 方法 , 传入 JNIEnv 指针 , 然后该 JNIEnv 就是线程对应的 JNI 环境 , 使用完毕后解除绑定 ; 参考 【Android...释放压缩数据 : 释放掉存储要压缩的 JPEG 图片 RGB 数据的内存 , 此时已经压完毕 , 可以将之前申请的内存都释放掉了 ; 注意之前申请的 data 指针 , 在拷贝数据过程中 , 将该指针移动过了..., 该变量作为返回值使用 // 引用自 bitmap.h AndroidBitmapInfo info; // 从 bitmap 中获得信息位图信息 AndroidBitmapInfo

    1.1K20

    优化内存使用:TensorRT-LLM和StreamingLLM在Mistral上提升推理效率

    他在深度学习领域取得了许多进展,并创办了多家人工智能公司。 在他的笔记里,介绍如何使用StreamingLLM框架在Mistral上运行推理。...TensorRT-LLM为用户提供了一个易于使用的Python API,用于定义大型语言模型(LLM)并构建包含最先进优化的TensorRT引擎,以在NVIDIA GPU上高效进行推理。...StreamingLLM简介 使用LLM处理无限长度文本存在挑战。特别是,存储所有先前的Key和Value(KV)状态需要大量内存,并且模型可能难以生成超出其训练序列长度的文本。...它非常适用于模型需要持续运行而不需要大量内存或依赖于过去数据的场景。一个示例是基于LLM的每日助手。StreamingLLM将让模型持续运行,根据最近的对话生成响应,而无需刷新其缓存。...dense_context_fmha - 在上下文阶段使用密集上下文fmha enable_pos_shift - 允许我们在KV缓存中使用位置以进行RoPE # Build the model model

    33110

    使用Tensorflow Lite在Android上构建自定义机器学习模型

    然而,有些人可能会退缩,认为它太难了,其实并不是这样的。使用TensorFlow Lite并不一定都是机器学习专家。下面给大家分享我是如何开始在Android上构建自己的定制机器学习模型的。...在为数字时代开发Android移动应用程序时,机器学习是不可多得的机会。现在能够使用神经网络为你提供服务的只有像苹果sir一样的语音助手。...如何使用TensorFlow Lite 要使用TensorFlow lite定制Android应用程序解决方案,您需要遵循以下几个步骤。...使用GitHub上的两种体系结构,您可以很容易地获得重新培训现有模型所需的脚本。您可以将模型转换为可以使用这些代码连接的图像。...你需要从Android Studio中输入Android文件夹来构建项目。在这里,你需要输入图像分类器,并使用TensorFlow Lite优化文件更新类中的两个字段。

    2.5K30
    领券