安卓菜鸟进阶
文章平均质量分 71
先知丨先觉
喜欢BUG之后的天空,肆意的NEW着对象,人生快哉!
展开
-
iperf3 网络探测详解(android、iOS、windows)
前言iPerf是一个网络性能测试工具。iPerf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。目前已经发布有Window,iOS,Android和Linux版本程序。主要有iPerf2和iPerf3两个版本,2与3不兼容(Android的iPerf3的程序测试网络时会自动兼容iPerf2程序,iOS不会自动兼容)。githu...原创 2020-02-14 16:23:22 · 14395 阅读 · 0 评论 -
安卓直播详细教程(一)-----bilibili开源播放器
前言临近双十一,最近忙成狗,好久没写博客,今天抽空不上一个,刚好最近公司自己做了直播,所以今天分享一下直播。在现在视频直播越来越火爆的今天,对于直播的需求也越来越大,对于七牛直播云之类的第三方平台也火爆起来,不过当公司需要自己做直播时候我们自己就要考虑一款能够支持流播放的播放器。Vitamio是一款众所周知的开源播放器,不过本人亲测,播放效果有点差,而且企业版貌似需要收费,个人使用是免费使用。原创 2016-10-24 10:29:38 · 14199 阅读 · 4 评论 -
2018最新安卓面试大全(含BAT,网易,滴滴)----你面不上BAT的原因:面经宝典,都在这里啦
废话不多说,直接进入正题。童鞋们可以扫码右侧二维码,加入微信群,分享你的面试经历哦~Java篇1.Java中sleep、wait、yield、join的区别?参考文章: java sleep和wait的区别的疑惑? 多线程中的wait与sleep到底谁释放了锁 sleep() wait() yield() join()用法与区别 Java多线程-(5)线程的优先级、...原创 2017-11-14 17:46:04 · 7703 阅读 · 2 评论 -
Android 跨进程双向通信(Messenger与AIDL)详解
今天这篇文章主要讲一下Messenger与AIDL的区别、优缺点以及各自的使用方法。项目地址:https://github.com/libin7278/IPC对binder和IPC还不熟悉的同学可以看一下之前的文章: IPC进程间通信/跨进程通信 Android 中的Binder跨进程通信机制与AIDLMessenger与AIDL的异同一、Messenger与AIDL相原创 2017-11-27 13:52:42 · 10268 阅读 · 4 评论 -
Android设计模式--观察者模式
一、概述1.1观察者模式介绍观察者模式是一个使用频率非常高的模式,他最常用的地方是GUI系统和订阅-发布系统。 该模式的最重要的作用就是解耦,使观察者和被观察者之间依赖尽可能小,甚至好无依赖。1.2观察者模式的定义定义对象间一种一对多的关系,使得每当一个对象改版状态,所有依赖它的对象都会得到通知并更新。 如图:1.3观察者模式的使用场景 1.事件多级原创 2019-02-16 09:38:25 · 898 阅读 · 0 评论 -
MPchart使用详解及详细属性(一)
项目源代码:https://github.com/libin7278/MpChart第一步 添加依赖或导入Library dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.2.0' c原创 2016-04-28 10:06:04 · 40113 阅读 · 15 评论 -
MPchart 使用详解及详细属性( 二)----pieChart(饼状图)
项目源代码:https://github.com/libin7278/MpChart第一步导入library详细见MPchart使用详解及详细属性(一) http://blog.csdn.net/github_33304260/article/details/51272078第二步pieChart源代码import android.app.Activity;原创 2016-06-28 19:56:11 · 24156 阅读 · 26 评论 -
Android强大log框架Logger使用详解
log信息是开发中最最重要的部分,那么如何更好的捕获信息呢?接下来就让我们了解一下强大的log框架–Logger。什么是logger?是一个简单,漂亮,强大的Android开源日志工具,代码托管在github上 项目地址 https://github.com/orhanobut/logger亮点?能够提供: 线程信息:log在哪个线程类信息:log在哪个类原创 2017-01-31 13:28:44 · 40947 阅读 · 10 评论 -
Picasso,Glide,Fresco对比分析
前言 图片加载是Android开发中最最基础的功能,同时图片加载OOM也一直困扰着很多开发者,因此为了降低开发周期和难度,我们经常会选用一些图片加载的开源库。 老牌的有ImageLoader,UIL,Volley,主流的有,Picasso,Glide,Fresco等等,选择一款好的图片加载裤就成了我们的首要问题。 接下来我们对比一下主流的三款 Picasso,Glide,Fr原创 2017-04-18 00:59:58 · 25694 阅读 · 20 评论 -
基于Glide的二次封装
更多代码可以查询本人GitHub:欢迎阅读,star点起来。 Glide二次封装库源码 前言为什么选择Glide? Glide 轻量级 速度快 可以根据所需加载图片的大小自动适配所需分辨率的图 支持多种格式图片(静态webp,动态gif,jpeg,jpg,png) 支持多种数据源图片(url,drawable,src,file,asserts,raw原创 2019-02-16 09:29:34 · 18839 阅读 · 7 评论 -
Glide 4.0.0 RC0 使用详解
Glide 4.0.0 RC0 官方说明Glide 4.0.0 RC0 官方说明Glide4.0源码全解析(一)demo下载地址: http://download.csdn.net/detail/github_33304260/98636531.变化单独列出的更改太多,但这里有一些亮点: 新的文档,用户可以通过提交请求到Glide’s gh-pages分支贡原创 2017-05-22 13:45:54 · 23007 阅读 · 24 评论 -
酷炫的外部开启Activity新姿势
酷炫的外部开启Activity新姿势在H5页面疯狂的今天,H5和Native的交互就至关重要,而且交互的方式有很多,google提供了一个公共的方式:js与native互调,即js可以调用Native方法,Native同样也可以调用js方法。不过今天要讲的并不是Url拦截的方式和JavaScript注入方式,因为这种交互方式存在着不少问题: 1、Java 调用 js 里面的函数、效率原创 2019-02-16 09:28:55 · 3375 阅读 · 12 评论 -
酷炫MQTT实现消息推送
首先在实现本功能之前我们需要储备一下预备知识,大家可以看我的前两篇文章以及官网,了解MQTT的基本常识: MQTT入门篇MQTT服务器Mosquitto安装及使用MQTT官网在步入正题之前先给大家发放个福利,介绍一款MQTT插件:MQTTLens 。MQTTLens插件的使用MQTTLens1.安装:点击链接进行安装。2.输入以下三个信息: connection原创 2017-06-24 22:50:38 · 30356 阅读 · 19 评论 -
Android完美适配dimens.xml脚本
相信大家都有适配的经历,而且面对大千世界千奇百怪的安卓手机,适配起来那叫一个蛋疼。所以本人决定研究一下自动化适配的方法,于是乎从dimens文件入手。 什么是dimens文件这里就不详细阐述了,相信大家都知道,不知道的童鞋可以问度娘。 这里我先帮大家再巩固一下像素密度相关知识:像素密度 屏幕像素密度指单位长度屏幕显示的像素,即常说的dpi (dots per inch),每英寸原创 2017-07-30 17:02:16 · 7230 阅读 · 2 评论 -
现有Android项目引入ReactNative--九步大法
为什么写这篇文章,因为很多时候我们是需要在原Android工程中添加ReactNative,而不是直接react-native init hello来创建工程,而且官网的说明不是很详细,不是完全针对安卓的,所以本文的必要性不言而喻。创建Android原生工程新建Android原生工程,这里就不详细叙述了,如下图: 点击finish到这里Android原生工程创建完成。运行原创 2019-02-16 09:27:53 · 6912 阅读 · 35 评论 -
安卓直播详细教程(三)-----ijkplayer打造个性化控制界面
前言为什么要写这篇文章呢?Firsr:直接集成ijkplayer的控制界面太丑了Second:无法满足我们的需求我们来看下直接集成的ijkplayer控制界面:是不是没法用,那么我们现在来自定义。自定义MediaController首先我们先去看看ijplayer怎么做的,然后我们照葫芦画瓢,去修修改改。一、ijplayer的demo如何实现?原创 2017-10-20 17:42:18 · 9336 阅读 · 3 评论 -
Android反编译与加密(代码混淆)
最近百万英雄之类的答题软件广受大家的喜爱,不过对于我这菜鸟基本没有拿过奖。 但是作为一名码农怎么能忍,于是研究出了即将与原创 2019-02-16 09:50:03 · 2850 阅读 · 0 评论 -
Android视频会议--彩蛋
前言:随着5G的时代的到来,视频会议将会有一个跨跃性的突破。5G普及带来的价值在于高速通信传输技术普及为移动视频通信提供基础。5G对于移动互联网用户增长将起到助推作用,由于网络的便捷与稳定,人们会更偏向于在移动端花费更多的时间,以获得更多的服务。知识储备:1、了解WebRTC2、熟练掌握RTP、RTCP、SIP、BFCP、SDP等协议3、有视频会议落地项目4、掌握视频会议常见问题的基...原创 2019-08-03 16:38:13 · 1074 阅读 · 0 评论 -
Kotlin实战【六】Kotlin中集合的创建
kotlin中的集合Kotlin中的集合分为两派:可变集合与不可变集合列表:List/MutableList;集:Set/MutableSet;映射:Map/MutableMap;集:Collection/MutableCollection;迭代器:Iterable/MutableIterable;所谓可变就是支持读、写、删,不可变只支持读我们从下面详细对比中可以发现:...原创 2019-03-16 23:16:22 · 5544 阅读 · 1 评论 -
程序员必备开发神器【MAC篇】
前言为什么会写这篇文章呢?首先,效率对于程序员来说非常重要;其次,避免大家被吐槽使用的假苹果;言归正传⭐️神兵利器–AlfredAlfred可以说是公认的MAC开发神器上图,Alfred 图标,放大镜+小帽子,个人理解的意思就是搜索+酷,而且酷占了大部分,没错,一旦使用你了Alfred,你就会觉得自己非常的酷,就像你打绝地求生的时候手里有把AWM+8倍镜。它能帮你快速打开网页...原创 2019-02-23 22:57:03 · 13244 阅读 · 2 评论 -
Android 混淆问题排查
问题近期在开发过程中,突然出现混淆后程序出现运行时异常,编译是正常的,不混淆也是正常的,错误信息如下提示12-07 14:10:27.056 10603-10603/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.hikvision.tvterminal, PID: 10603 java.lang.RuntimeE...原创 2019-02-16 09:33:09 · 4680 阅读 · 4 评论 -
Android抓包技术
前言首先我们需要明确抓包的目的:1、分析数据传输协议2、定位网络协议的问题3、从数据包中获取想要的信息4、 将截取到的数据包进行修改,伪造,重发举个栗子:电话会议通话中,此时通话突然异常中断。查看日志后发现没有收到心跳response回应,那么此时就需要抓包,来确认对方设备是否发送了response信息,从而来确定问题根源。抓包的几种方式:1、电脑开放热点,手机连接电脑热...原创 2018-11-30 21:48:06 · 5117 阅读 · 0 评论 -
Kotlin实战【二】Kotlin基本要素
前言本章我们将学习怎么用kotlin声明任何程序都存在的基本要素:变量、函数、类以及属性的概念一、函数和变量1.1 Hello World让我们以一个经典的例子开始:打印“Hello, world!”fun main(args: Array<String>) { println("Hello, world!") }从上面代码我们能看到哪些...原创 2019-02-16 09:34:28 · 960 阅读 · 0 评论 -
Android TV开发总结【RecycleView】
在TV开发中RecycleView的使用是最让人头疼的经常会出现焦点丢失。因为当item未显示时不能获取焦点。所以当我们按上下键时经常丢失焦点或者焦点乱跳。要解决这个问题我们必须要手动控制RecyclerView 的按键和焦点移动。所以我们这里需要需要自定义RecycleView。代码如下,各个方法作用在注视中已添加:public class TvRecyclerView extend...原创 2019-02-16 09:34:49 · 2394 阅读 · 0 评论 -
Android TV开发总结【适配】
前言Android 的屏幕适配是指适配不同机顶盒 UI 框架层输出的分辨率和 dpi,而不是适配不同分辨率的电视机(电视机的适配交由机顶盒本身完成,和各个应用无关)之前的文章有介绍过适配相关的问题在和dimens插件,可以前往了解:Android完美适配dimens.xml脚本打造AS酷炫dimens适配插件背景知识1、什么是屏幕尺寸、屏幕分辨率、屏幕像素密度?...原创 2018-08-09 20:39:19 · 8242 阅读 · 0 评论 -
Kotlin实战【一】Kotlin定义与目的
前言本系列文章适合有一定java经验的开发者,文章主要内容来自于Dmitry Jemerov的《Kotlin实战》,并加以自己学习过程中的感悟,总结以及实战中的经验。Kotlin官网Kotlin中文官网其他资源(部分需要科学上网):Android快速转战Kotlin教程Kotlin官方论坛Stack Overflow上的Kotlin标签Kotlin Reddit...原创 2019-02-16 09:35:12 · 2027 阅读 · 0 评论 -
Android TV开发总结【焦点】
一、焦点获取首先,TV端的开发和我们手机端开发最大的区别就在于TV端存在焦点的概念。如下图:可想而知,手机端我们直接通过点击\长按某个区域处理响应事件处,但是TV端只能通过遥控器的上下左右来操控焦点,从而选中特定的区域处理相应事件。在TV开发中没有以前我手机端的dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent 事件来分发...原创 2018-06-28 21:31:47 · 14913 阅读 · 4 评论 -
安卓自定义列表dialog
前言很早之前写过一篇 自定义提示信息Dialog 如图: 这个形式也是最常用的,不过最近需要用到列表信息Dialog,原生的不光样式不能满足需求,而且是开发电视端的APP,需要对焦点进行特殊处理,所以就需要自定义Dialog我们先来看一下系统自带的列表Dialog。系统自带列表Dialog第一种:纯列表我们先来看第一种:最简单的一种,没有当前状态,只有列表...原创 2019-02-16 09:35:30 · 10706 阅读 · 0 评论 -
Android快速转战Kotlin教程
前言kotlin是啥?这里就不用多说了,想必看这篇文章的童鞋肯定是有所了解的。 那么这篇文章你可以收获什么? 答:本文主要通过本人如何从java转战到kotlin并应用在实际项目中的个人经历,给大家提供一些学习思路、学习方法以及一些学习资料和个人总结。前提:你的项目(包含个人项目)即将开始用到kotlin(没有项目作为依托你会缺少十足的动力,而且缺少应用场景乘热打铁那也...原创 2019-02-16 09:24:57 · 122663 阅读 · 14 评论 -
GIT与SVN世纪大战
为神马会写这篇文章?由于本人之前一直使用git虽然没到炉火纯青的地步但也能自由的coding,但是最近需要使用到svn,于是呢总在想两者有神马区别呢?接下来一起来仔细研究一番。漫画篇学术篇 差 异 SVN GIT 系统特点 1.集中式版本控制系统(文档管理很方便)2.企业内部并行集中开发3.windows系统上开...原创 2019-02-16 09:35:51 · 1571 阅读 · 3 评论 -
打造AS酷炫dimens适配插件
书接上文 Android完美适配dimens.xml脚本后,今天给大家带来了本人最新开发的dimens适配插件。 接下来给大家介绍一下插件的基本使用,非常简单。 脚本下载地址使用一、安装插件1.选择Preferences 2.Plugins–>Install plugin from disk… 3.选中dimens-conver.jar文件 4.Resta原创 2019-02-16 09:27:17 · 3967 阅读 · 5 评论 -
Glide4.0源码全解析(一),GlideAPP和.with()方法背后的故事
前言在上一篇文章中我们体验了Glide-4.0的强大,以及更加简便的API,很多童鞋已经开始迁移了,那么接下来我们一起探索一下他的神奇之处:首先我们来看一下4.0的基本用法:GlideApp.with(this) .load(R.raw.large_giphy_logo) .into(giphyLogoView);就这么简简单单的一句代码,其实G原创 2019-02-16 09:26:40 · 16420 阅读 · 2 评论 -
Android秒级编译Freeline的使用(Android Studio)
啥都不说了编译安装速度就是快,先上个图,大家可以看一下freeline的体验效果哦。 我这是一个小demo,虽说包不大,但是也可以看出打包安装的速度真的是秒级。 接下来看一下什么是Freeline?什么是 Freeline?Freeline 是蚂蚁金服旗下平台蚂蚁聚宝 Android 团队开发的一款针对 Android 平台的增量编译工具,它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行原创 2019-02-16 09:46:42 · 7181 阅读 · 2 评论 -
Google推荐的图片加载库Glide介绍
在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech。这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会上发布的官方app。它的成功让我非常感兴趣。我花了一整晚的时间把玩,决定分享一些自己的经验。在开始之前我想说,Glide和Picasso有90%的相似度,准确的说,就是Picasso的克隆版本。但是在细节上还是有转载 2019-02-16 09:47:04 · 1801 阅读 · 0 评论 -
安卓滚动字幕以及TextSwitcher、ImageSwitcher使用
安卓字幕滚动,textSwitcher,imageSwitcher原创 2019-02-16 09:48:56 · 6082 阅读 · 1 评论 -
Android 中的Binder跨进程通信机制与AIDL
如果对进程、线程概念还很懵懂的同学可以看一下之前发表的一篇博客,里面是基础概念: IPC进程间通信/跨进程通信 http://blog.csdn.net/github_33304260/article/details/52895331为什么需要跨进程通信?答:两个对象能直接互相访问的前提是两个对象在相同的内存地址空间中,如果两个对象那个在两个不同的进程中,比如ActivityManager和Ac原创 2016-11-15 18:48:38 · 3695 阅读 · 0 评论 -
Android使用ListView时item失效解决方案
在使用ListView时候有时候会遇到item点击事件没响应。 原因很简单,你的item中又Button,Checkbox,ImageButton之类的控件,导致ListView.setOnItemClickListener无效,主要原因是这些试图获取了焦点导致item无法获取焦点,所以有如下三种方法: 1)在item布局文件里面的设置,让Button,Checkbox,ImageBu原创 2019-02-16 09:52:45 · 1696 阅读 · 3 评论 -
AS解决在导入library之后lable/icon/theme合并出现bug
AS解决在导入library之后lable/icon/theme合并出现bug原创 2019-02-16 09:51:55 · 1116 阅读 · 4 评论 -
MAC环境配置SDK
下面我将一下mac环境下的配置步骤:1、启动Terminal终端工具2、输入cd ~/ 进入当前用户的home目录3、创建: touch .bash_profile4.打开并编辑: open .bash_profile 会打开之前创建的文件更新: source .bash_profile按“control+X”保存(确认按“Y”)5、在文件中写入以下内容:export export PATH=原创 2019-02-16 09:51:01 · 6058 阅读 · 0 评论 -
MAC安装apache tomcat配置方法图文教程
一.下载Tomcat网址 http://tomcat.apache.org/ mac下载zip和tar.gz都行,我下载的是tar.gz 二.压缩之后直接拷贝到资源库中,压缩后的文件夹名称改为Tomcat,具体位置如下:三.打开终端,输入以下命令Tomcat8/bin/startup.sh,浏览器中输入localhost:8080,就可以看到一下效果: 如果遇到提示No such file o原创 2019-02-16 09:50:49 · 6388 阅读 · 1 评论