7 小风666

尚未进行身份认证

我要认证

技术这个事情,只看态度,不看资历。

等级
TA的排名 5w+

LinearLayout布局中的一些问题

LinearLayout中两个场景的分析:LinearLayout都布局在根布局中,且根布局width为match_parent,LinearLayout 中orientation = vertical,layout_width = wrap_content1.LinearLayout它有一个子view,子viewlayout_width = match_parent问题:LinearLayout和子view分别显示的宽度是多大?<LinearLayout androi..

2020-05-27 14:11:01

Http 1.x弊端与Http 2.0比较

本博客转载自https://www.cnblogs.com/barrywxx/p/8570006.htmlHTTP2.0作为新版协议,改动细节必然很多,不过对应用开发者和服务提供商来说,影响较大的就几点。新的二进制格式(Binary Format)http1.x诞生的时候是明文协议,其格式由三部分组成:start line(request line或者status line),head...

2020-03-05 14:11:04

Android使用ndk toolchain交叉编译gloox

在上一篇https://blog.csdn.net/u011803341/article/details/99586726中使用了Android.mk进行编译,有可能会出现奇奇怪怪的问题,比如在str::string s = ""最基础的赋值都会报异常。想着还是编译的时候出了什么问题,所以最后采用了gloox自带的configure并make 来进行编译,下面是编译流程。其中/Users/xx...

2019-08-21 17:13:32

使用Android.mk编译gloox库

由于项目需要,用了gloox库,但是gloox官网没有很详细的编译的makefile文件,所以花了点时间,使用Android.mk来编译。首先大部分的编译脚本是https://github.com/rxwen/gloox/blob/master/Android.mk这个提供的。我是在他的基础上进行编译,出了问题进行一些修改,下面的是在本机上试验通过的。如果使用如下编译有std::str...

2019-08-14 17:20:27

Android gradle aar不能传递依赖

先来看下gradle依赖的几种常见的关键词新配置 已弃用配置 行为 本Module 上层Module implementation compile 依赖项在编译时对模块可用,并且仅在运行时对模块的消费者可用。 对于大型多项目构建,使用implementation而不是api/compile可以显著缩短构建时间,因为它可以减少构建系统需要重新...

2019-07-23 15:18:56

Android屏幕旋转四个方向准确监听

在做相机开发时,遇到一个问题,就是需要监听屏幕旋转。最简单的就是使用onConfigurationChanged()和OrientationEventListener这两种方法来实现,但是最后都遇到了问题。#1 一开始是使用onConfigurationChanged()这个回调,重新Activity里面的这个方法就可以了,简单又方便。用了之后发现,它只能监听,横屏切竖屏的情况。左横屏切...

2019-07-18 16:48:49

五幅图学会Android Canvas的坐标系变换(rotate translate scale)

在写公司项目的时候,需要画一个垂直的SeekBar,一开始就是简单的在xml文件里面,添加了android:rotate="-90"这个配置,不过后面发现很多问题。最后网上查资料,使用了Canvas.rotate()和Canvas.translate()的结合,实现了垂直的SeekBar布局。一.Canvas的坐标系介绍一般来讲,一个自定义view的canvas的显示区域就是View的...

2019-04-30 12:43:32

Java基本数值类型取值范围

这里介绍一下Java的几个基本类型Short Integer Long Float Double,以及他们的取值范围,内存占用字节数,还有他们在内存中具体是如何存储的。1.Short  2字节取值范围是-2^15 ~ (2^15-1) public final class Short extends Number implements Comparable<Short> ...

2019-01-07 14:31:14

Wireshark分析tcp三次握手HTTP请求过程以及四次挥手

这里介绍一下,使用Wireshark抓包来看,tcp三次握手HTTP请求过程以及四次挥手。上面几个过程具体就不介绍了,大家可以去其他博文查看,这里使用wireshark来分析,主要目的是对以往学习的知识进行一次考验以及加固,顺便可以学习一下wireshark,有些时候遇到http请求失败啊什么的情况下,有可能是tcp层出现的问题,就必须要使用wireshark来进行分析了。大花瓶已经无能为力了。...

2018-11-16 16:44:46

Android退到后台与切到前台

最近开发了一款TV版app,主要功能是视频通话,所以要求机顶盒是一开机,就要把app打开,因为时刻有别人打过来。然后点击返回按钮,需要把app切到后台,但是app仍需要存活,需要收到消息。所以这里就设计到了app退到后台与切到前台的功能。app退到后台1.一般情况下,是启动Home页就可以实现这个功能,代码如下Intent intent = new Intent(Intent.ACT...

2018-09-18 16:40:49

阅读ViewGroup源码解决SurfaceView叠加切换TouchEvent事件冲突问题

先说说故事背景吧,要开发类似微信视频聊天功能,就是两个SurfaceView叠加,然后有按钮可以切换大小屏(对方画面和自己预览画面)(两个SurfaceView层级切换,见另一篇文章),这个时候有个功能是,需要小的屏幕可以拖拽,悬停。故事背景大概是这样。本文有点长,是讲解原理的,伸手党,可能要有点耐心看完本文才有答案。描述:这是图一页面大概是这样,A和B是两个SurfaceView,点击小的画面可...

2018-07-11 15:40:44

Java泛型全面解析

Java中的泛型可以说让新手一头雾水,而且多个泛型同时使用会让人一脸懵逼。现在就来看看各个情况吧。 1.最简单的泛型举例 public class TTest<T> { public void test(){ List<T> list = new ArrayList<>(); } public sta...

2018-04-27 11:26:15

Java中new String()和intern()的那些事

今天主要是想讨论下面试中常见的String  s = new String("abc");创建了几个对象,还有String.intern()方法有什么作用。本文后面所有的结论都是基于jdk1.7及以上版本的。1.String  s = new String("abc")创建了几个对象答案是一个或者是两个String s1 = new String("abc");String s2 = new S...

2018-04-04 16:12:15

使用WireShark深入理解HTTPS原理

前端开发,移动开发,后台开发,都应该知道HTTP通信,而且现在一些大厂都已经使用HTTPS进行通信,那HTTPS到底是什么呢,有什么好处呢? 一.为什么要使用HTTPShttp是一种通信上极为简便的协议,他本身不带有安全功能,http包在网络上传输的过程中难免会被人窃听,篡改甚至拦截。有时候一些比较隐私的数据比如个人账号密码身份证号码,银行卡账号密码,是绝对不能被人知道的,那这个时候该...

2018-03-27 12:21:47

Android 下拉刷新控件XListView原理解析

在Android app开发过程中,使用下拉刷新控件的机会是非常多的,比如列表页或是首页,一般都是要下拉刷新的。在Github中下拉刷新控件有很多,但是我现在介绍的是已经停更很久的XListView,因为我觉得这个库写的简介明了,功能稳定,bug少。非常适合自己学习下拉刷新的原理。面试的时候也通常会问到某些控件的原理,所以,了解一下还是很有必要的。XListView在github中的仓库:http...

2018-03-15 10:59:08

iphone手机充电口耳机孔接触不良

手机用久了,充电的时候动一下,数据线就滑出来,要是不注意看,有时候放着充一晚上,也没充进去电。耳机孔也是一样,用久了,就感觉接触不良,要多钮几下,声音才会正常。这个问题困扰了我很久,终于发现是充电口进入了很多衣服纤维,使用牙签,把这些纤维抠出来就好了。...

2018-03-07 09:56:03

Android Studio升级Gradle 4.1后出现 class not found

Android Studio 升级到3.0以后,出现的Android Profiler功能挺好用的,但是有要求,gradle要升级到4.1才能使用,那就升级吧。然后就出现了各种各样的问题。。。问题1描述:出现 class not found的异常问题1解决方案:出现这个问题还有一个条件就是,在app/build.gradle 中配置了android{ default{ multi

2018-02-06 15:45:57

Android 大小两个Surface切换

在视频聊天app中一般会有这样的场景,一个大的Surface显示对方的画面,一个略小的Surface显示自己的画面(类似于微信视频聊天),然后点击一下小的那个Surface,会把两个画面对调。今天就来看看,这个是怎么实现的。

2017-12-05 11:14:09

Android jni c/c++传递实体类到java

上一篇文章讲了c/c++与java之间如何传递参数,但是有些时候c层会传递过来一个实体类,最开始,我是把实体类里面的参数都拆出来,一个一个传递到java层去,这样实现上没任何问题,但是太过繁琐。就去找了直接传递实体类的方法。 传递基础类型的方法,这里就不再赘述,有需要的可以看我上一篇博客。这里就在它的基础上进行讲解。

2017-11-27 16:48:35

Android JNI-c/c++调用java方法

在使用ndk开发的时候,java调用c/c++方法是必须要的。但是很多时候,c/c++有callback需要反馈给java的时候(比如IM通讯登录成功信息和一些异常信息),就需要c/c++调用java方法了。 在看这篇文章之前,必须对JNI有一些基础的了解,比如java调用c/c++方法,java和c/c++ jni在一些基本类型上的对应(int对应jint等)。

2017-10-25 11:16:12

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。