安卓菜鸟进阶
文章平均质量分 72
文章主要介绍安卓基础以及进阶相关文章,包括基础的四大组件,自定义View,也包括框架分析等等
先知丨先觉
喜欢BUG之后的天空,肆意的NEW着对象,人生快哉!
展开
-
酷炫实现WebView与Native完美融合
前言首先看个效果图: 这里背景是native的,左侧边栏也是native的,右侧内容是透明web页面,是不是很酷炫的样子,而且我们还可以自己加蒙版背景,是不是很酷。 这个场景非常适合左侧目录是本地的,然后内容是加载web页面,这样可以实时跟新内容,而且不会像纯h5那样尴尬。 跟多场景小伙伴可以自己挖掘,只是提供一个思路。 实现步骤 1.web页面设置透明(opacity) 2.安卓原创 2019-02-16 09:28:23 · 6237 阅读 · 3 评论 -
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集成及基本使用
好久没有写这个系列的文章了,时隔接近一年再次用到ijkplayer会发现已经跳跃了三个大版本,那么今天就先介绍一下jikplayer的集成和基本使用。首先贴上GitHub地址:Bilibili/ijkplayer其实呢github已经说的很清楚了,不过还是和大家分享一下:准备工作:在引入ijkplayer之前我们需要去构建.so,因为在后面我们需要用到,这里本人已经编译了一套可以直接拿去用,下载地址原创 2017-08-14 20:17:09 · 11261 阅读 · 7 评论 -
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 评论 -
Glide4.0源码全解析(二),load()背后的故事
书接上文,上回书说到GlideAPP和.with()方法背后的故事,那么我们接着按照我们开始的思路,按照Glide基本加载步骤中的三步走,with(),load(),into(),今天 我们来介绍一下load()方法。load()方法全面解析通过上一篇文章Glide4.0源码全解析(一),GlideAPP和.with()方法背后的故事 我们可以知道.with()方法返回的是GlideReques原创 2019-02-16 09:39:41 · 2532 阅读 · 1 评论 -
Glide4.0源码全解析(三),into()方法背后的故事
书接上文, Glide4.0源码全解析(二),load()背后的故事接下来直接看.into(),注释中会详细讲解 代码精简过,按照点用顺序依次排列,方便大家阅读。public class RequestBuilder<TranscodeType> implements Cloneable { ... ...省略 ... /** * 对当前的Image原创 2019-02-16 09:39:10 · 3569 阅读 · 2 评论 -
安卓直播详细教程(三)-----ijkplayer打造个性化控制界面
前言为什么要写这篇文章呢?Firsr:直接集成ijkplayer的控制界面太丑了Second:无法满足我们的需求我们来看下直接集成的ijkplayer控制界面:是不是没法用,那么我们现在来自定义。自定义MediaController首先我们先去看看ijplayer怎么做的,然后我们照葫芦画瓢,去修修改改。一、ijplayer的demo如何实现?原创 2017-10-20 17:42:18 · 9336 阅读 · 3 评论 -
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 评论 -
Android快速转战Kotlin教程
前言kotlin是啥?这里就不用多说了,想必看这篇文章的童鞋肯定是有所了解的。 那么这篇文章你可以收获什么? 答:本文主要通过本人如何从java转战到kotlin并应用在实际项目中的个人经历,给大家提供一些学习思路、学习方法以及一些学习资料和个人总结。前提:你的项目(包含个人项目)即将开始用到kotlin(没有项目作为依托你会缺少十足的动力,而且缺少应用场景乘热打铁那也...原创 2019-02-16 09:24:57 · 122663 阅读 · 14 评论 -
Android Architecture Blueprints----安卓架构详细分析
首先,让我们看一下google给出的框架: github : https://github.com/googlesamples/android-architecture首先本人也没有用过这么多框架,只是基于自己的经验和分析带领大家研究一下Android Architecture Blueprints。前言Android框架在决定如何组织和构建 Android应用程序时提供了很多灵活性。虽然这种自由原创 2019-02-16 09:46:13 · 2761 阅读 · 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 评论 -
Java 相关时间工具类
Java时间工具类原创 2019-02-16 09:52:27 · 1457 阅读 · 3 评论 -
安卓自定义Dialog的实现
安卓自定义Dialog原创 2019-02-16 09:52:11 · 36632 阅读 · 4 评论 -
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 评论 -
安卓直播详细教程(一)-----bilibili开源播放器
前言临近双十一,最近忙成狗,好久没写博客,今天抽空不上一个,刚好最近公司自己做了直播,所以今天分享一下直播。在现在视频直播越来越火爆的今天,对于直播的需求也越来越大,对于七牛直播云之类的第三方平台也火爆起来,不过当公司需要自己做直播时候我们自己就要考虑一款能够支持流播放的播放器。Vitamio是一款众所周知的开源播放器,不过本人亲测,播放效果有点差,而且企业版貌似需要收费,个人使用是免费使用。原创 2016-10-24 10:29:38 · 14199 阅读 · 4 评论 -
Android系统信息与安全机制
双十一快要来临了,安卓三个版本已近更新完毕,打包上线,所以最近在疯狂的写博客、欢迎大家前来讨论问题,互相学习o!!! 今天和大家分享一下—Android系统信息与安全机制–1、安卓系统信息的获取/********************设备配置信息相关********************//***主板*/publicstaticfinalStringBUILD_BOARD=Build.B原创 2019-02-16 09:50:20 · 1280 阅读 · 0 评论 -
Android浸入式
现在比较流行的就是浸入式,也就是状态栏颜色和当前页面颜色保持一致,为了有更好的视觉效果。 首先: 在setContentView()之前加上如下代码 tintManager.setStatusBarTintResource()可以设置想要的通知栏颜色@Override protected void onCreate(Bundle savedInstanceState) {原创 2016-10-26 10:25:33 · 3053 阅读 · 0 评论 -
Android 6.0 相关问题
1.java.lang.SecurityException: getDeviceId: Neither user 10063 nor current process has android.permission.READ_PHONE_STATEjava.lang.SecurityException: getDeviceId: Neither user 10063 nor current proces原创 2019-02-16 09:49:16 · 6997 阅读 · 1 评论 -
安卓滚动字幕以及TextSwitcher、ImageSwitcher使用
安卓字幕滚动,textSwitcher,imageSwitcher原创 2019-02-16 09:48:56 · 6082 阅读 · 1 评论 -
Google推荐的图片加载库Glide介绍
在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech。这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会上发布的官方app。它的成功让我非常感兴趣。我花了一整晚的时间把玩,决定分享一些自己的经验。在开始之前我想说,Glide和Picasso有90%的相似度,准确的说,就是Picasso的克隆版本。但是在细节上还是有转载 2019-02-16 09:47:04 · 1801 阅读 · 0 评论 -
Android内存泄漏分析心得
前言 对于C++来说,内存泄漏就是new出来的对象没有delete,俗称野指针;对于Java来说,就是new出来的Object 放在Heap上无法被GC回收;本文通过QQ和Qzone中内存泄漏实例来讲android中内存泄漏分析解法和编写代码应注意的事项。Java 中的内存分配静态储存区:编译时就分配好,在程序整个运行期间都存在。它主要存放静态数据和常量;栈区:当方法执行时,会在栈区内存中创建转载 2017-02-13 13:23:30 · 648 阅读 · 0 评论 -
Android ADB动态查看内存信息之Watch使用
前言先让我们看一下这条代码的效果: watch -n 1 -d adb shell dumpsys meminfo com.libin.factory看到了动态的内存信息了吗,是不是很赞!那么我们来看看为何如此的爽!adb shell dumpsys meminfo com.libin.factory这个命令相信大家都不陌生,就是查看内存信息,那这会你应该明白我们的效果通过什么来实现的了吧,那就是w原创 2019-02-16 09:45:00 · 3258 阅读 · 0 评论 -
酷炫的外部开启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 评论 -
IPC进程间通信/跨进程通信
概念进程:一个JVM就是一个进程 线程:最小的调度单元 一个进程可以包含多个线程,在安卓中有一个主线程也就是UI线程,UI线程才可以操作界面,如果在一个线程里面进行大量耗时操作在安卓中就会出现ANR(Application Not Responding)Android中IPC来源IPC不是安卓中独有的 ,比如Windows中通过剪贴板,管道,油槽等进行进程间通信,Linux通过命名管道,共享内容原创 2019-02-16 09:50:36 · 3028 阅读 · 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反编译与加密(代码混淆)
最近百万英雄之类的答题软件广受大家的喜爱,不过对于我这菜鸟基本没有拿过奖。 但是作为一名码农怎么能忍,于是研究出了即将与原创 2019-02-16 09:50:03 · 2850 阅读 · 0 评论 -
Android 中的Binder跨进程通信机制与AIDL
如果对进程、线程概念还很懵懂的同学可以看一下之前发表的一篇博客,里面是基础概念: IPC进程间通信/跨进程通信 http://blog.csdn.net/github_33304260/article/details/52895331为什么需要跨进程通信?答:两个对象能直接互相访问的前提是两个对象在相同的内存地址空间中,如果两个对象那个在两个不同的进程中,比如ActivityManager和Ac原创 2016-11-15 18:48:38 · 3695 阅读 · 0 评论 -
Android秒级编译Freeline的使用(Android Studio)
啥都不说了编译安装速度就是快,先上个图,大家可以看一下freeline的体验效果哦。 我这是一个小demo,虽说包不大,但是也可以看出打包安装的速度真的是秒级。 接下来看一下什么是Freeline?什么是 Freeline?Freeline 是蚂蚁金服旗下平台蚂蚁聚宝 Android 团队开发的一款针对 Android 平台的增量编译工具,它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行原创 2019-02-16 09:46:42 · 7181 阅读 · 2 评论 -
Android强大log框架Logger使用详解
log信息是开发中最最重要的部分,那么如何更好的捕获信息呢?接下来就让我们了解一下强大的log框架–Logger。什么是logger?是一个简单,漂亮,强大的Android开源日志工具,代码托管在github上 项目地址 https://github.com/orhanobut/logger亮点?能够提供: 线程信息:log在哪个线程类信息:log在哪个类原创 2017-01-31 13:28:44 · 40947 阅读 · 10 评论 -
Android开发者常用Chrome插件---(源码查看,投屏,json格式化等)
Android SDK Search链接地址: https://chrome.google.com/webstore/detail/android-sdk-search/hgcbffeicehlpmgmnhnkjbjoldkfhoin?hl=zh-CN一款用于查看Android源码的插件 使用方法:安装好插件之后,进入Android Developers 网址:https://develop原创 2019-02-16 09:29:56 · 9750 阅读 · 0 评论 -
Android library快速构建上传jcenter
前言在使用了AS之后,大家都喜欢使用依赖compile 'com.android.support:appcompat-v7:25.2.0' jCenter与maven centralandroid studio之前默认使用maven central仓库,最新版中已经将jCenter设置为默认仓库,对于开发者来说,jcenter的操作以及管理页面都更加的友好,所以这里选择先将aar上传到jCenter原创 2019-02-16 09:45:39 · 1263 阅读 · 1 评论 -
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二次封装库的使用
上一篇文章介绍了如何基于Glide进行二次封装。 基于Glide的二次封装本篇文章将详细讲述如何使用。初始化在Application中: ImageLoader.init(getApplicationContext());为了防止oom,加入如下代码,清理内存: @Override public void onTrimMemory(int level) { su原创 2017-05-03 19:43:36 · 4809 阅读 · 0 评论