android
文章平均质量分 64
The Goat
God of coding
展开
-
记录一次jni内存泄漏
关于jni如何才能不泄露内存的基本原则:c/c++分配的资源,一律需要自己管理(可以用智能指针管理起来,或者用RAII思想管理),否则一定会存在内存泄漏jni api分配的资源,若是c/c++类型,需要自己管理,因为这些变量分配在jni heap上,java不会帮你管理。若是java类型(jstring/jobject等各种j开头的类型),这些变量分配在java heap上,java的GC会帮你回收。我本次的内存泄漏是上述第2点导致,即,我通过GetStringUTFChars从jstring得到原创 2021-01-26 16:41:16 · 545 阅读 · 0 评论 -
android studio生成和使用jar包
生成jar因为项目需求,需要把android代码生成jar包,供别人使用在我调试阶段,我的android代码是app形态的,要想生成jar包,首先就要修改app下build.gradle的第一行(其实就和c++工程中cmake配置add_execute改成add_library类似,我们是为了生成库,不是二进制程序):apply plugin: ‘com.android.application’ 改成 apply plugin: ‘com.android.library’同时,这行代码需要注释掉:原创 2021-01-11 11:36:52 · 585 阅读 · 0 评论 -
android 9.0申请网络权限
共三部操作:<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test4">步骤1: <uses-permission android:name="android.permission.INTERNET" /> <appli原创 2021-01-06 21:12:57 · 4589 阅读 · 0 评论 -
android studio配置jni小结
关于android工程添加jni相关配置,可参考以下博文,简单明了,其实主要就是添加一个CMakeLists.txt,修改下gradle内容(配置cmake路径、配置c++相关的flag):Android笔记之使用CMake进行JNI开发(Android Studio)问题记录:遇到A problem occurred configuring project ‘:app’.(注意,我的android studio在build出错之前,还提示warning: “NDK is missing a “原创 2021-01-05 21:08:17 · 221 阅读 · 0 评论 -
android ndk程序crash解决手段
背景在linux x86系统中,如果程序发生了crash,可以通过core dump生成core文件,然后gdb进行分析,这方面的资料很多。在android环境中,native程序crash,该怎么办呢?也可以生成core文件,然后用安卓编译工具链里面的gdb等工具进行分析,这块可以参考:Android 下基于core文件分析crash信息更为简单的一种方式,可以直接查看tombstone文件。当native程序崩溃时,安卓会在/data/tombstone目录下生成对应的tombstone文件,该文原创 2020-10-23 15:01:46 · 557 阅读 · 0 评论 -
android设备uuid、udid
前言udid:UDID是Unique Device Identifier的缩写,中文意思是设备唯一标识.uuid:UUID是Universally Unique Identifier的缩写,中文意思是通用唯一识别码.简言之:udid对应某个硬件设备,一个硬件设备的唯一标识。而uuid除了表达硬件的唯一标识,还能用来标识软件的标识,比如手机上不同的app的UUID是互斥的android设备怎么获得udid呢?这里面,我们主要目的是想获得一台android设备对一个的一个唯一的标识码,即udid.原创 2020-08-04 16:08:12 · 12764 阅读 · 0 评论 -
adb remount 系统提示只读文件系统Read-only file system,解决用adb disable-verity
在Android 9.0,能对system分区进行操作,提示没有写权限,为只读文件系统Read-only file system,并且adb root->adb remount时,adb remount会报错。解决方法如下.执行如下命令adb rootadb disable-verity(最新的adb 工具包才支持adb disable-verity命令,比如我ubuntu 14...原创 2020-03-11 11:05:57 · 2968 阅读 · 0 评论 -
android jni学习——1小时掌握JNI(深入浅出)
文章目录学习总结参考补充知识点1. static代码段学习总结我参考了以下四篇博文,基本掌握了JNI的常用知识点。推荐学习顺序1->2->3->4。1, 2这两篇博文写的很细致,看完基本能学会80%内容,要详读。通过第3篇博文的例子可以进一步巩固下jni的知识。第四篇内容最全,不过内容更像是手册,可以一扫而过参考Android NDK开发:JNI基础篇Andr...原创 2020-02-19 13:17:25 · 454 阅读 · 0 评论 -
android assets资源使用——深入浅出
文章目录0 前置知识点1 android有两种资源文件:2 通过AssetManager类访问asset中的资源2.1 概述2.2 常用方法2.3 应用实例1.访问assets目录下的资源文件:2.获取assets的文件及目录名:3.将assets下的文件复制到SD卡:4.使用assets目录下的图片资源:参考0 前置知识点 每个app安装后,会在/data/data/<apk pac...原创 2020-02-13 16:45:36 · 7207 阅读 · 0 评论 -
JNI学习[一]:Java传递自定义类到JNI,JNI对类对象进行修改
目的:java层自定义了类,类成员包括arraylist,把该类对象传到JNI,让JNI向该类对象的arraylist成员中添加元素,然后在java层显示添加后的结果。方便起见,添加元素的操作我封装到了java层,这样,JNI层只需要调用该类的Add method,而不用操作具体的类成员了。(事实上也应该这样,因为类成员通常是private的)JAVA代码: public native...原创 2019-12-27 11:07:29 · 2270 阅读 · 0 评论 -
通过命令行启动android app
首先,通过该命令获取所有包名:adb shellpm list packages通过命令行启动app:带屏幕的android设备:monkey -p com.package.name 1 via adb shell不带屏幕的android开发板(比如高通820A):参考:https://stackoverflow.com/questions/4567904/how...原创 2019-11-08 14:34:45 · 1164 阅读 · 0 评论 -
Android下设置CPU核心数和频率
现在的Android手机双核、四核变得非常普遍,同时CPU频率经常轻松上2G,功耗肯定会显著增加。而大多数的ARM架构的CPU采用的是对称多处理(SMP)的方式处理多CPU。这就意味着每个CPU核心是被平等对待的,同时打开又同时关闭。显然,这样的做法在Mobile Device上显得很耗能。所以,Qualcomm的Snapdragon CPU使用了一种叫非对称多处理(aSMP)的技术,每个CPU核...原创 2019-08-28 19:53:08 · 709 阅读 · 0 评论