- 博客(11)
- 收藏
- 关注
原创 Android studio中NDK开发(四)——使用addr2line分析Crash日志
一、前言在NDK开发中经常会出现应用Crash的情况,而JNI层的报错信息,不像Java层报错信息那样可以直接在日志中看到错误的行数,JNI层中出现的错误直接看根本定位不到错误的位置。通常来说,JNI报的基本都是堆栈信息,需要NDK的一些工具进行地址转换,转换后即可看到错误的位置。这些地址转换的工具有addr2line、ndk-stack等,我比较喜欢addr2line,平时也用这个工具进行调试...
2019-01-17 11:09:16 11491 6
原创 Android studio中NDK开发(五)——C嵌套结构体与Java类在JNI层的传输
一、前言最近在Android上的NDK开发时遇到一个问题,在Java层需要获取到设备的注册信息,然后在JNI层将这些信息封装为结构体参数的形式传递到C++中的方法中进行处理。也就是说,在Java层获取到的信息需要先转换成结构体,再传进去,在C++和Java的JNI层转换的这个过程中整整卡了两三天,一直找不到解决问题的思路。二、分析从结构体的特性来看,其实结构体就是不同属性的合集,只不过嵌套...
2019-01-14 21:15:13 1437
原创 Android studio中NDK开发(三)——JNI层日志打印
一、前言JNI层是Java和C/C++的桥梁,在Java层中我们通常会使用Log.v()/Log.e()等来进行日志打印,在C中使用printf方法,但在JNI层这些方法是无法在Android studio中下的Logcat中显示的,需要用到另外的库,这个已经打包在log.h头文件中。 二、步骤1、在C/C++文件,即.c或.cpp文件中引入log.h头文件#include ...
2019-01-04 10:55:04 2829
原创 Android studio中NDK开发(二)——使用CMake引入第三方so库及头文件
一、前言通常来说,第三方提供的so库以及头文件都没有没有引入jni.h头文件。所以我们在导入第三方so库以及头文件的时候需要手动的将其关联到官方的native-lib库中,关联成功后就可以在native-lib中include进第三方头文件,引进头文件成功后就可以在自定义的JNI接口中对第三方头文件中内容进行调用。二、准备第三方so库以及头文件创建一个默认的NDKDemo(可按照CMak...
2018-12-29 16:50:42 13327 25
原创 Android studio中NDK开发(一)——使用CMake构建NDKDemo
一、前言NDK可以支持使用C/C++来编写Android程序,不但可以引入C/C++中优秀的库资源,而且在使用底层的C/C++来处理一些复杂的运算效率更高,并且可以方便跨平台移植。本篇主要以CMake的方式来构建NDK,主要以最常规的方式创建一个NDKImportDemo,并对自动创建官方例子进行分析构建的过程以及CMakeLists.txt构建文件的配置。 二、准备1、检查And...
2018-12-29 12:36:38 2300
原创 Git的使用之提交本地项目代码到GitHub
一、前提条件 下载Git工具(下载地址:https://git-scm.com/downloads) 注册GitHub账号(GitHub官网 https://github.com/) 二、相关命令将远程版本库的文件克隆到本地项目中git clone 远程版本库的地址 将克隆到本地的项目文件夹下的文件复制到上一级自己的项目文件夹中cp -r 项目...
2018-08-23 15:13:04 265
原创 Android蓝牙通信中在Activity间传递BluetoothSocket对象
一、前言最近在做手机端蓝牙与单片机 HC—05 模块通信的部分,需求是在一个Activity中连接蓝牙列表中的设备,连接成功后唤起另一个Activity,并在另一个Activity中实现与单片机的蓝牙模块的数据传输。实现设备的连接需要调用 mBluetoothSocket(BluetoothSocket的实例对象)的 connect 方法,实现设备的数据传输需要调用 mBluetoothSoc...
2018-08-21 01:38:51 2676
原创 Android中ListView数据不显示问题
一、简介:最近使用listView来显示蓝牙设备列表,运行后发现什么都没有显示。 二、调试:1、在自定义Adapter重写的getView方法中添加一条日志,发现运行后该日志并没有打印出来,说明getView方法并没有执行;2、检查传入自定义Adapter的数据列表ArrayList,在ArrayList添加数据后添加日志打印,发现运行后日志能打印出数据,说明ArrayList...
2018-08-15 16:09:18 15515
原创 Android中使用Canvas和Paint实现自定义View
一、简述对于自定义View的实现,Canvas和Paint两类是很有用的。 这两个类是 android.graphics 包下的两个类,Canvas是画布,Paint是画笔,通过这两者结合一起,就可以绘制出自己需要的View,然后将View加入到布局 xml 中或者在 Java 代码中引用即可。二、基本步骤(一)创建一个自定义的MyView继承View (二)创建MyView的三个...
2018-08-06 18:28:38 968
原创 Android Studio中创建drawable文件夹下可以使用layer-list、selector元素的xml文件
今天看到Android书上的一段代码,如下所示:<layer-list xmls:android="http://schemas.android.com/apk.res/anndroid" > <item> <shape android:shape="rectangle"> <sold android...
2018-07-29 22:26:31 1418
原创 Android Studio中的typo波浪线提示
typo的提示如下:Spellchecker inspection helps locate typos and misspelling in your code, comments and literals, and fix them in one click意思是指拼写检查器会帮助定位到打字以及拼写错误在代码、注释和文体中的位置,并且通过一次点击来修复它们 有两种解决方法:一...
2018-07-28 00:04:07 6169
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人