
Android
文章平均质量分 64
TheFlashArrow
The Flash
展开
-
Android JNI 静态与动态注册
①:静态注册在Java类中声明一个native方法,然后alt+enter,选择第一项,对应的dynamic.cpp文件中,就会生成对应的JNI方法。注意看:JNI方法上方有JNIEXPORT和JNICALL两个宏定义声明,且其命名符合native方法和so方法的对应规则。其中JNIEnv类型代表了Java环境,通过这个JNIEnv* 指针,就可以对Java端的代码进行操作。jobject thiz代表该native方法的类实例或者这个native方法的类的class对象实例优点:实现简原创 2022-01-19 19:48:38 · 2152 阅读 · 0 评论 -
Android JNI内存管理原则
基本原则:①:GetStringUTFChars 和 ReleaseStringUTFChars,GetXXArrayElements 和 ReleaseXXArrayElements,必须对应起来,否则会导致内存泄漏。注意,在Release之后,不能在使用Get获得的数据。②:如果是在JNI函数内通过NewStringUTF、NewXXXArray或NewObject创建的java对象无论是否需要返回java层,都不需要手动释放,jvm会自动管理。但是如果是通过 AttachCurrentThre原创 2022-01-19 19:40:23 · 1679 阅读 · 0 评论 -
Android JNI 语法
①数据类型:Java与JNI数据对应关系 Java native 描述 Java native 描述 基本数据类型 引用数据类型 boolean jboolean unsigned 8位 String jstirng 字符串对象 byte jbyte signed 8位 Class jclass Class类 char jchar unsigned 16位 ...原创 2022-01-19 19:38:37 · 1330 阅读 · 0 评论 -
Android JNI 开发
①:NDK与JNI简介NDK:Native Development Kit,是Android的一种开发工具包,能够快速开发C,C++的动态库,并自动将so和应用打包成APK。而NDK的使用场景就是通过NDK在Android中使用JNI。JNI:Java Native Interface的缩写,即Java的本地接口,JNI可以使得Java与C,C++语言进行交互。NDK优点:1.APK的Java层代码很容易被反编译,而C/C++库反编译难度较大2.将要求高性能的应用逻辑使用C开发,从而提高原创 2022-01-19 19:33:21 · 2994 阅读 · 0 评论 -
Android 水印透明度失效问题以及解决方案
场景:去年公司对外的水泥商城APP来了一个水印需求---对重要页面,如商品详情、订单详情页面等添加水印。水印的具体实现逻辑也比较简单,通过自定义drawable绘制水印,并作为背景添加到fragment容器中,再将该fragment添加至根布局,就完成了水印的实现。然而,在上线几个月后,直至今日,线上总共反馈了3起水印文字透明度失效的问题,按照时间先后,分别为:OPPO的一款、华为Mate 30 Pro、华为畅享10e。排查:当时在同款手机上测试时,均正常,就猜测可能是字体导致的,但...原创 2021-08-12 10:05:30 · 1542 阅读 · 1 评论 -
Android NFC开发(NFC读取)
场景:NFC是目前Android手机一个主流的配置硬件项,本文主要讲解一下Android开发中,NFC刷卡的两种实现方式以及相关方法源码解析。①:Manifest注册方式:这种方式主要是在Manifest文件对应的activity下,配置过滤器,以响应不同类型NFC Action。使用这种方式,在刷卡时,如果手机中有多个应用都存在该NFC实现方案,系统会弹出能响应NFC事件的应用列表供用户选择,用户需要点击目标应用来响应本次NFC刷卡事件。目前我公司这边项目中使用了该逻辑,比较简便,这里先贴一下该方式.原创 2021-07-30 16:08:16 · 8691 阅读 · 8 评论 -
Android 线上问题排查经历以及Camera初步学习总结
场景:接触Camera是今年3月份的时候,当时公司一个项目的后台审核业务员反馈:部分用户上传的证件照片比较模糊,看不太清楚。由于照片来源是APP端边框识别所得的照片,在经过测试复现后,我接手了该问题。复现:与测试负责人一起经过初步真机排查,发现该问题只在部分Android老机型中比较明显,如华为P9、OPPO R9等,这也容易理解,毕竟这5年前的手机像素确实不太行。(注:项目中的边框识别是2-3年前,公司开发人员使用github上一个名为card-io-lib开源项目的aar包)。排查经过:①.原创 2021-07-29 16:43:33 · 656 阅读 · 0 评论 -
Android Developing Helper
场景:记录一些Android开发过程中常用的配置项。(持续更新)①:APP build.gradle:android { ... //签名配置,用于gradle脚本打包 signingConfigs { release { keyAlias 'key名称' keyPassword 'key密码' storeFile file('签名文件路径') stor原创 2021-07-27 10:22:56 · 117 阅读 · 0 评论 -
Android activity跳转另一个应用的activity以及任务栈信息
场景:本文主要是对“一个应用的activity跳转至另一个应用的activity情况下,这两个activity在哪个栈内”这个问题进行讨论与分析,欢迎大佬进行指正。编写测试代码:A应用的某个activity添加跳转事件(显式跳转):传入包名、类全名Intent intent = new Intent(); intent.setClassName("com.hongshi.singleapp.equiphealth", "com.hongshi.singlea..原创 2021-07-23 15:49:43 · 2199 阅读 · 1 评论 -
Android ADB命令使用记录
记录一些常用adb命令,方便日后自己查看。(从电脑本地转至云端,顺便水一篇文章,嘻嘻嘻)原创 2021-07-23 09:51:29 · 637 阅读 · 3 评论 -
Android EditText被软键盘遮挡问题(问题记录)
前言:这个问题在目前的开发生涯中,令我比较深刻,以至于过去快1年了,我还记忆犹新,在此记录一下。场景:大约在1年前,当时负责的一个WMS仓储管理APP(Kotlin项目),线上突然反馈了“输入框被软键盘遮挡的问题”。接手问题后,开始复现,在HUAWEI P9与 线下物联网定制手持机中,都复现了该情况,系统版本均为Android 8.0。问题现象:由于项目暂时跑步起来,这里先用文字描述一下情况,暂时不上gif图。 (口头描述:在页面中间部分有一个输入框,点击输入框唤出软键盘时,输入框.....原创 2021-07-21 13:43:34 · 3242 阅读 · 3 评论 -
Android addViewInLayout使用解析
场景:之前原生项目开发中,遇到了动态2级表格需求,最开始使用viewGroup的addview()方法,动态对表格内容进行添加。但发现动态添加时,会导致渲染速度十分缓慢,在请求获取到数据后,过了好几秒才渲染完成。分析:在查阅资料后,注意到了另一个view添加方法----addViewInLayout。改方法大致介绍为:在布局期间添加视图,如果你需要添加多个view,那么这个方法更加有用。如果index是负的,那将会放在最后一个。(大致就是这么个意思,人工翻译可能稍微有点偏差)/** *原创 2021-06-30 20:19:29 · 1399 阅读 · 4 评论