![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android进阶
文章平均质量分 56
Rnwater
465215335
展开
-
Camerax预览拍照+防抖检测
camerax 防抖检测原创 2022-08-12 15:15:23 · 1494 阅读 · 0 评论 -
tv端视频播放解决方案
一、框架选择这边主要使用谷歌原生框架Exoplayer 。api 'com.google.android.exoplayer:exoplayer:2.12.2'二、代码调用1、单个文件播放player = new SimpleExoPlayer.Builder(this).build();standard_video.setPlayer(player);player.addListener(myPlayListener);Uri uri = Uri.parse(videoUr原创 2021-01-20 16:43:59 · 422 阅读 · 1 评论 -
MQTT 学习总结
阿里云MQTT构建流程https://help.aliyun.com/document_detail/44867.html?spm=5176.MQTT.0.0.40716245clcRt0两种收费模式:包年包月 适合企业级按流量计费:适合个人(很便宜)Android端开发时需要注意的地方1:<uses-permission android:name="android.permission.WAKE_LOCK" /><uses-per...原创 2020-06-23 16:27:51 · 197 阅读 · 0 评论 -
Android 系统架构学习
1).系统运行层库分为两部分,分别是C/C++程序库和Android运行时库。2).运行时库分为核心库和ART(Android 5.0 系统之后,Dalvik虚拟机被ART取代)。核心库提供了JAVA语言核心库的大多数功能。Dalvik 和 ART的区别Dalvik虚拟机是专门为移动设备定制的,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用...原创 2019-08-13 15:18:09 · 113 阅读 · 0 评论 -
JNI学习第五天
1、编写基础方法void add(int num1,int num2){ printf("num1+num2=%d\n",(num1+num2));}void minusss(int num1,int num2){ printf("num1-num2=%d\n",(num1-num2));}int main(int argc, const char * argv[])...原创 2019-07-23 11:21:56 · 73 阅读 · 0 评论 -
JNI学习第四天
数组的操作 int array[]={1,2,34,5,44}; printf("\narray的值是:%p\n",array); printf("\narray&的值是:%p\n",&array); printf("\narray[0]&的值是:%p\n",&array[0]); printf("\narray[1]&am...原创 2019-07-23 11:09:57 · 93 阅读 · 0 评论 -
JNI学习第三天
通过指针修改值 int m=100; int *p=&m; m=200; printf("\nm的值是:%d",m); *p=500; printf("\nm的值是:%d\n",m);通过打印可知道当前值被修改了。 通过这个我们可以对比java的值引用和对象引用,具体的可以自己去查询下区别。...原创 2019-07-23 10:40:30 · 77 阅读 · 0 评论 -
JNI学习第二天
C++打印 int i=100; double d=200; float f=200; long l=100; short s=200; char c='D'; printf(" i 的值是:%d",i); printf("\n d 的值是:%lf",d); printf("\n f 的值是:%f",f);...原创 2019-07-23 10:35:37 · 87 阅读 · 0 评论 -
JNI学习第八天(三)Java和native相互调用
这一篇主要是native调用javanative想要调用java首先我们要知道调用的谁?这一章我们先来学习调用方法来自调用者本身的。我们这次测试的是通过native层调用getName()方法接下来是native层方法。我们先一步一步看看。首先按照我们做java的想法,调用一个类中的方法一般分3步,1,知道类名 2,知道方法名 3,调用方法根据这3个步...原创 2019-07-26 14:51:28 · 211 阅读 · 0 评论 -
JNI学习第八天(二)Java和native相互调用
接下来我们来看下Android怎么调用jni(Java Native Interface)static { System.loadLibrary("native-lib");}public native String stringsFromJNI();public native String stringsFromJNI();看这个书写方式是不是有点熟悉。跟java...原创 2019-07-25 15:32:26 · 174 阅读 · 0 评论 -
JNI学习第八天(一) Java和native相互调用
前几天我们学习了c的基础知识和jni的一些基本数据类型的对应关系。接下来几天开始进如JNI的练习。学习之前我们要先来弄懂要学什么?接下来分析下:一、java调用c二、c调用java三、自己编写c的内容。我们前期先主要围绕前两种来学习。学习之前我们首先要做的就是学习怎么打印Log日志,当然这个Log是在Jni中打印的。我们知道c的打印一般就是printf()但是这个方...原创 2019-07-25 14:52:25 · 150 阅读 · 0 评论 -
JNI学习第七天
对象struct Person{ int age; char name;};struct Person{ int age; char name;} p; p是相当于new了无参数的对象 我们可以直接使用struct结构体,即是java中的对象。对象使用的时候我们需要分配内存,malloc(sizeof(Person)) 如果需要知道内...原创 2019-07-25 13:43:46 · 88 阅读 · 0 评论 -
JNI学习第六天
内存申请int num=4;int* array=(int*)malloc(sizeof(int)*num); //int array[4];int i=0; for (; i<num; i++) { array[i]=i;}free(array)上面所操作的就是int类型的数组申请sizeof(int)*num 相当于开辟4个int类型的内存地址...原创 2019-07-24 17:40:10 · 72 阅读 · 0 评论 -
Dalvik VM 和 JVM的差异
很多人任务Dalvik VM是一个Java虚拟机,因为android的编程语言就是JAVA.但是这种说法是不准确的,因为Dalvik虚拟机并不是按照Java虚拟机的规范来实现的两者并不兼容。其中有如下两个显著的不同点。1:java虚拟机运行的是java字节码,而Dalvik虚拟机运行的是dex格式的文件2:在Java se 程序中Java类会被编译成一个或多个字节码文件.class然后打包...转载 2019-04-25 17:24:20 · 139 阅读 · 0 评论 -
android 源码根目录
翻译 2019-04-25 15:33:06 · 572 阅读 · 0 评论 -
Android 性能优化
性能优化时Android老生常谈的问题了,接下来我们分步骤来看下一可以从哪些方面来进行性能的优化。1、数据结构的选择。 正确的选择合适的数据结构是很重要的,对于Java中常见的数据结构我们也是经常使用的到例如ArrayList和LinkedList、HashMap和HashSet等等。我们一SparseArray代替HashMap为例进行说明。SparseArray是A...原创 2019-05-05 15:39:29 · 126 阅读 · 0 评论 -
JNI第一天 JNI基本数据类型
一、JNI基本数据类型字符对应"()V" "(II)V" "(Ljava/lang/String;Ljava/lang/String;)V" ()中的字符表示参数,后面的则代表返回值"()V"就代表 void func()"(II)V" 表示 void func(int,int)上述是单字符的表示,下面来看下数组的表示方法数组是以"["开始用两个字符表示 ...原创 2019-04-25 21:58:28 · 305 阅读 · 0 评论