自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

stay hungry stay foolish

https://github.com/OMGyan

  • 博客(45)
  • 收藏
  • 关注

原创 Android手写实现class文件的热修复(仿Tinker)

前言: 又有一阵子没有更新博客了,最近本人在完成一个开源项目。马上又到年尾了,所以时间比较赶。等完成之后会给大家分享一下,希望小伙伴们能多多支持(star)啊!好了,回到今天的主题,热修复这个技术想必大家都听过,或者也试过。这确实是一个非常牛逼的技术。但其实已经不算是新东西了。这些年来国内各大互联网巨头也都推出了自己的热修复方案,比如我要说的微信的tinker,还有像阿里的...

2019-12-21 16:57:18 366

原创 Android中使用MediaExtractor和MediaMuxer对MP4文件进行分离与融合

前言:博客好久没更新了,小伙伴们非常抱歉。最近本人呢,在研究音视频方面,所以打算写个专栏来记录一下。分享给大家的同时也是和大家共同进步。相信小伙伴们,都能看得出来,现在短视频行业是异常火爆,而且人才还非常稀缺,人的天性就是喜欢看动的东西,所以短视频火爆绝对不是偶然的。随着5G时代的到来,这一点将会更加明显,最重要的一点是我认为做为一个Android开发人员,如果一直只是从事应用开发的话,是走不...

2019-11-08 15:27:02 913

原创 Win10下Flutter开发环境搭建这一篇足矣

前言:笔者作为一个Android开发者,已经越来越能感受到原生开发的不受待见了,这里并不是说原生就不行了,而是随着这些年混合跨平台方案的层出不穷,导致市场对纯原生开发者的要求越来越高,你不仅要会原生还得会前端知识。这样就导致很多初级开发者举步维艰,特别是像笔者这样的应用开发人员。如果你是系统开发人员还好一点。在这种环境下,原生与web前端之间的区别越来越模糊,大前端时代也就随之到来。总体来说,...

2019-07-01 17:40:55 5074 1

原创 App启动优化(一)

前言:从今天开始我将和大家一起走进应用的性能优化领域,首先还是希望能坚持更新吧。哈哈!作为一个应用开发人员,我们深知应用的性能对于应用本身有多么重要,我为什么把启动优化放在开篇呢,因为启动是用户对应用的第一体验,用户要想使用app,就一定会打开它,这个时候如果这个启动没做好,不管之后做得怎么样,给用户得第一感觉就已经变差了,随之带来的后果就是用户留存会变少,这对公司来说将是巨大的损失。要知道当今移动互联网的红利已经所剩不多,大多是巨头之间的战争。小公司要想有一席之地,那就必须得做得完美才行。我想绝大多数

2020-07-04 16:06:53 714

原创 论算法的时间复杂度(包你懂)

前言:不知道小伙伴们有木有刷算法的习惯,比如Leetcode,剑指Offer等等。如果没有的话,这里借用Pascal之父Niklaus Wirth教授说过的一句话:"程序=算法+数据结构",这句话让他获得了图灵奖。说明算法非常重要哦!希望你们能养成这种习惯。刷算法题的时候,我们肯定遇到过这种要求,例如:"这道题的要求是时间复杂度 O(N),空间复杂度 O(1)" 可能很多人对这句话不是很理解,...

2019-08-23 15:37:44 788

原创 Android隐藏底部虚拟导航栏及系统状态栏终极方案

前言:笔者最近做一个平板的项目需要彻底隐藏系统状态栏及底部虚拟导航栏从而达到全屏的效果,试了很多方案都不太好,有些虽然能达到类似效果,但会因为其他因素例如弹框,手上滑而失去效果。在大部分项目是够用的,但像我这种特殊情况,就得用特殊方法去解决了,首先小伙伴们得明确自己的需求,我这里使用的方法是让它永远不出现,即全屏,因为我做的是launcher定制项目,所以有类似需求伙伴,你们的福利来了。使用这...

2019-07-30 17:14:16 11055 18

原创 Dart基础入门(四)Dart中的方法

前言:上次跟你们说过,从这篇开始我们就进入到面向对象阶段的学习了,不过呢,在真正接触到面向对象的核心知识前,我们有必要先学习一下Dart中的方法,我们首先要知道的是,面向对象指的是一种编程思想,简单来说就是把事情交给对象去做,不用自己亲自动手,现在听起来可能有点不太理解,很正常,因为它是一个很深层次的概念,你只要理解透了这种思想,以后学习其他面向对象语言就很容易上手了。我相信等你们看完本系列文...

2019-06-20 17:30:25 1448

原创 Dart基础入门(三)循环与分支和控制语句

前言:小伙伴们!周末回来,接下来我继续给大家入门Dart语言,今天是本系列文章第四篇,看过上篇文章的知道,我们已经介绍到了语句部分,所以这篇文章我将继续给大家介绍Dart中的其他语句写法及用法。还是那句话,对于小白来说,希望你们在看这篇文章前把前面的文章都按顺序看完,这样对你的学习帮助只会更大。好了,系列文章地址下面已给出。废话不多说,开始今天的介绍。Dart开发环境搭建这一篇就够了 ...

2019-06-18 19:14:07 888

原创 Dart基础入门(二)运算符及条件表达式

前言:接下来继续我们的Dart入门学习,上一篇给大家介绍了Dart中的变量,常量以及数据类型,相信小伙伴们都学会了,今天我给大家介绍一下Dart中的运算符及条件表达式相关知识,如果你还没看过上一篇的文章,我还是希望你能先去看看,当然我指的是那些没有任何经验的小伙伴,因为只有这样,你才能更好的理解学习接下来的知识。下面是上篇文章的地址,好了,开始今天的介绍吧。Dart基础入门(一)变常量与数...

2019-06-12 17:51:18 642

原创 Dart开发环境搭建这一篇就够了

前言:一般来说,移动开发者不会单独来配置Dart开发环境,因为Flutter的环境已经包括了它。这里我们是抛开Flutter单独学习一下Dart语言,而且大家要知道的是Flutter只是它的一个应用方向而已,还有其他很多方向,诸如后端等等,因为我是移动开发者,所以其他方向我就不多关注了,大家有兴趣可以去Dart官网看看。配置Dart比Flutter要简单很多,坑也很少。下面看看具体步骤吧。...

2019-06-10 11:55:55 1893

原创 Dart基础入门(一)变常量与数据类型

前言:Dart 是一种针对客户端优化的编程语言,可以为任意平台开发流畅的应用程序。对于移动开发人员来说,由于Flutter框架的持续升温,我们很有必要去学习它,而Dart正是它的开发语言,看上去是一门全新的面向对象编程语言,但其实它吸收了js,java等语言的特性,所以对前端以及移动开发人员来说比较友好,上手难度不大,如果你没有任何语言经验也不要紧,本系列文章将用一个个小例子来让你快速入门。好...

2019-06-05 17:39:08 806

原创 Android仿微信实现IOS风格的滑动返回上一页

前言: 我们都知道在当前Android系统当中如果要实现应用返回上一页,最简单的做法就是什么也不做,所谓无招胜有招指的大概就是这个吧!但你真敢这么做嘛!这可不是微信所提倡的大道至简啊,虽然Android系统自带虚拟返回键,但是往往我们还是会在标题栏加上返回按钮吧,可能说大部分应用这么做就结束了。我想大家肯定有这种时候吧,当你沉醉在当前界面的美好事物当中时,这时候你想返回上一...

2019-05-11 16:16:25 897

原创 Android指纹识别初识

前言:2019年的第一篇博客我们来看看Android系统中指纹识别,在很长一段时间以来指纹识别这一独特用户验证方式都存在于我们的智能手机当中,直到最近一年才慢慢推出了人脸识别等更加高级的生物识别方式,作为Android开发者来讲,可能很多人都不了解它的实现方式,因为确实如果你不是系统开发人员是很少会去接触这个,所以可能会认为是不是要通过第三方的SDK来实现,其实官方SDK在6.0(api23)...

2019-04-01 15:29:50 426

原创 Android设计模式之单例模式浅谈

一.前言:在说设计模式之前,给大家推荐一本书 《Android源码设计模式解析与实战》——何红辉与关爱明著,这绝对是国内对设计模式的最佳阐述,两位作者都是安卓届的大神级人物,像何红辉就是AndroidEventBus的作者,其实这本书我还没看完,设计模式是软件工程的基石和脉络,如同大厦的结构一样,所以它不仅仅应用在Android方面,而是所有软件体系,可以这么说,如果你对设计模式理解很深,那么...

2018-11-09 10:52:45 327

原创 Android屏幕适配终极方案(包括全面屏)

我想对于很多安卓开发者来说,屏幕适配永远是一个绕不开的难题,这种情况随着全面屏时代的来临只会越演越烈!这里小弟我也不想高谈阔论,直接给大家介绍一种非常方便快捷的适配方法,而且亲测对于全面屏也适用。不过在正式说之前,希望大家对Android屏幕密度及常用单位如dp,px等等,之间的联系,尽量了解一点,这里我就不多说了,我的这种方案采用的是dp适配,如果UI出的图是px的话,那你要懂得如何换算了。...

2018-10-17 16:59:40 1383

原创 Android中通过支付宝授权来实现快捷登录功能

前言:当前很多APP中的登录界面都提供了通过第三方账号来进行快捷登录,例如我接下来要说的支付宝,其他的还有微信。QQ等等,至于做法都是大同小异,你只要熟读文档的话,就问题不大!可能有些人觉得很繁琐不想读,所以,这篇文章将会以极其简练的文字来帮你快速解决集成支付宝快捷登录,这里我默认你已经集成好了Alipay的sdk! 什么,没有!看这边传送门一.获取授权请求参数首先我们看到这是官方...

2018-09-28 16:07:34 8230

原创 Android中NFC标签卡的读取

前几天老大把一张卡拿给我说要我把用NFC技术读出它的uid来,写成一个demo给他,我第一反应就是一脸闷逼,可是卡已经交给我了,只能照办不误了!在我不长的开发生涯中是从来没有接触过NFC的,所以在接到任务后,我也是急忙的恶补一波相关知识,最后也算是完成任务了吧,但对于NFC还只是入了门而已,我今天要说的也就是常见的NFC标签读取,给大家领个路而已,互相学习。我先给大家说一下NFC(Near Fie...

2018-07-14 16:11:51 5685 2

原创 Android开发之Ble(Bluetooth low energy)初识

看见标题小伙伴们大概能看出我今天要说的是什么了!由于近来公司项目中有关于Ble方面的需求,对于Bluetooth方面的相关知识,因为这种需求工作中不多(你如果从事于智能硬件相关的岗位那另说),所以之前我也只是写过一些小demo(还是2.0的),没有实战过。再加上这次用的是4.0,所以我也是急忙的涉猎了一波。。那么对于蓝牙的前世今生这里我就不多废话,大家有兴趣可以直接度娘,蓝牙在Android系统中...

2018-07-14 12:07:05 1865

原创 初探小程序的孪生兄弟---QuickApp

     今天无意间看到这个快应用的介绍感觉很有意思,看了它的开发过程,发觉他其实和小程序很像也是用h5和js来写的,自我感觉它的优势就像它官网说的: 快应用具备传统APP完整的应用体验,无需安装、即点即用。而且快应用是基于手机硬件平台的新型应用形态,标准是由主流手机厂商组成的快应用联盟联合制定就这点来说感觉比小程序强一点了!!!我们今天叫初探也就意味着第一步就要讲讲搭建快应用(QuickApp)...

2018-04-04 08:53:25 736

原创 Android中Webview与Js交互技巧大全(二)

上一篇给大家说了下WebView调用js这个应该来说比较简单,在说JS调用WebView之前如果有没看过上篇的这里有传送门,好了接下来还是直接上代码吧!对于JS调用Android代码的方法大体来说有三种:1,通过WebView的addJavaScriptInterface()就是对象映射的方式(虽然有瑕疵,但是这是本人非常常用的方法)2,通过WebViewClient的shouldOverride...

2018-04-02 16:40:22 193

原创 Android中Webview与Js交互技巧大全(一)

好久没有动过博客了,近段时间公司没啥事情,所以利用这点时间给大家分享一些学到的东西,当然本人技术有限可能难免会有些错误,也希望各位看官多多指引,好了今天给大家说的是我们现在在一些电商应用里面经常会涉及的一些技术点如Android原生与前端之间的交互,当然现在各大公司都推出一些框架如weex,cordova等等供大家使用学习,但作为一名普通开发者,我们还是先把最基本搞懂,开篇前可能还是希望大家先熟悉...

2018-04-02 15:55:40 231

原创 Kotlin初识

Android开发者在语言限制方面面临着一个困境。众所周知,目前的Android开发只支持Java 6(语言本身从Java 7开始进行了一些改进),因此我们每天只能使用一种古老的语言来进行开发,这极大地降低了我们的生产力,同时也迫使我们不得不编写大量的样板与脆弱的代码,然而这样的代码是难以阅读和维护的。幸运的是,Android程序是运行在Java虚拟机之上的,因此从技术上来说,可以运行在JVM之上

2017-05-25 15:50:00 313

原创 Rxjava1初识

要想学会Rxjava,我们得来看它的原理--观察者模式,什么是观察者模式,它分为三个部分 1.观察者(Observer),2被观察者(Observable),3.事件,这里我给大家举个的例子  比如说我们开灯这个事情,其中这个按钮就是被观察者,而灯就是观察者,也就是说灯亮与不亮 要靠按钮的变化,只要按钮改变状态了灯也会相应改变,这就是典型的观察者模式 大家应该有点意识了。下面给一个小demo加

2017-05-24 13:14:29 255

原创 retrofit2框架基本使用

首先我们知道retrofit本身是不能进行网络请求的,他是要内部依赖其他网络请求库,在retrofit1中它是OKhttp 但是现在的retrofit2中可以支持其他的比如说volley:所有第三方库都要引包这里你这样做: /*retrofit2*/    compile 'com.squareup.retrofit2:retrofit:2.3.0'    /*retrofit2低

2017-05-24 13:03:05 789

原创 自绘View(仿酷狗歌单右侧字母导航条)

今天给大家带来的是仿酷狗歌单右侧字母导航条,其实不仅是这里,只要是要用到字母导航的地方大概都是这么做的,直接给大家上代码,注释比较齐全了:1.自定义view部分public class Letterindex extends View{    //创建字母索引数组    private String[] letter = {"A", "B", "C", "D", "E", "F",

2017-05-24 10:46:27 638

原创 Java汉字转换为拼音

今天给大家带来一个工具类: public class ChineseToPinyinHelper {private static int[] pyvalue = new int[] { -20319, -20317, -20304, -20295,-20292, -20283, -20265, -20257, -20242, -20230, -20051, -20036,-2003

2017-05-24 10:29:21 351

原创 自绘View(时钟)

public class ClockView extends View {//绘制表盘的画笔private Paint circlePaint;//绘制表盘圆心的画笔private Paint dotPaint;//绘制表盘上竖线的画笔private Paint linePaint;//绘制表盘文本的画笔private Paint textP

2017-05-24 10:22:13 322

原创 Android大图片的二次采样

今天来给大家看一下经典二次采样问题,看下我的和你的有什么区别吗:public class BitmapUtils {/*** @param res 资源对象* @param resId 被采样的源位图的id* @param w 要显示的控件的宽* @param h 要显示的控件的高* @return*///大图片二次采样publi

2017-05-24 10:19:29 391

原创 Android数据库存储基本操作

1.adb命令(把模拟器数据库导入系统盘符):adb pull(空格) /data/data/com.qf.shujukudemo/databases/player.db(空格)C:\player.db2.增删改查:public class ABHelper extends SQLiteOpenHelper {public ABHelper(Context contex

2017-05-24 10:17:13 307

原创 安卓IPC(进程间通信)之AIDL基本使用

1.客服端public class MyService extends Service {@Nullable@Overridepublic IBinder onBind(Intent intent) {return new MyBinder();}class MyBinder extends IMyAidlInterface.Stub {@Overr

2017-05-24 10:12:51 267

原创 android常用系统广播及其处理

今天来教大家一些我们常用的系统广播处理方式,直接上代码:@监听休眠与唤醒·只能以动态方式注册·注册:receiver = new ScreenReceiver();intentFilter = new IntentFilter();intentFilter.addAction(Intent.ACTION_SCREEN_ON);intentFilter.add

2017-05-24 10:07:57 675

原创 Android文件存储详解

【读写外部存储的几个前提】//*外部存储、SD卡、文件系统指的都是同一概念==================================================·添加系统权限:·判断外部存储/SD卡是否就绪:String state = Environment.getExternalStorageState();if(state.equals(Enviro

2017-05-24 10:04:46 582

原创 SharedPreferences应用之首次加载引导界面

今天来讲一下SharedPreferences最基本的使用,话不多说直接上代码://入口程序为欢迎界面public class WelcomActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated m

2017-05-24 09:59:56 467

原创 自定义progressbar样式

老式水平样式(比较粗)style="@android:style/Widget.ProgressBar.Horizontal"新式水平样式(比较美观)style="?android:attr/progressBarStyleHorizontal"老式水平样式(颜色)改变:@android:style/Widget.ProgressBar.Horizontal---><ite

2017-05-24 09:53:04 606

原创 QQ顶部消息与电话切换栏实现(UI美化)

QQ大家肯定以及一定用过吧,那么大家肯定注意过它顶部两个模块的切换是不是很有意思呢,今天带大家来模仿一下,话不多说,都是很基本的代码相信大家都能理解:1.xml version="1.0"encoding="utf-8"?><shapexmlns:android="http://schemas.android.com/apk/res/android"android:

2017-05-24 09:47:03 1275

原创 Android UI美化基本

这一篇先给大家介绍最基本的UI美化知识,下一篇给大家上一个实例;    xmlns:android="http://schemas.android.com/apk/res/android"    android:shape=["rectangle" | "oval" | "line" | "ring"] >   --- 默认为rectangle,矩形        

2017-05-24 09:43:09 2817

原创 android常见异常(ANR)

1.ANR异常ANRs (“Application Not Responding”),意思是”应用没有响应“。在如下情况下,Android会报出ANR错误:– 主线程 (“事件处理线程” / “UI线程”) 在5秒内没有响应输入事件– BroadcastReceiver 没有在10秒内完成返回通常情况下,下面这些做法会导致ANR 1、在主线程内进行网络操作2、在主线

2017-05-24 09:40:34 427

原创 android常见异常(OOM异常)

首先,OOM就是内存溢出,即Out Of Memory。也就是说内存占有量超过了VM所分配的最大。    怎么解决OOM,通常OOM都发生在需要用到大量内存的情况下(创建或解析Bitmap,分配特大的数组等),在这样的一种情况下,就可能出现OOM,据我现在了解到,多数OOM都是因为Bitmap太大。所以,这里我就专门针对如何解决Bitmap的OOM。其实最核发的就是只加载可见范围内的Bitma

2017-05-24 09:38:11 521

原创 文本操作类SpannableString的使用

今天来看下textview到底有多强,直接上代码:布局的话很简单,就是垂直线性布局里面放了9个textview,这里我就不放出来了public classMainActivityextendsAppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState)

2017-05-24 09:33:40 218

原创 TextView中添加超链接的四种方式

/*** TextView中添加超链接的四种方式* 1.autoLink属性* 2.使用HTML* 3.将html资源直接定义在string中* 4.使用SpannableString*/public classMainActivityextendsAppCompatActivity {privateStringhtml="打电话;发短信

2017-05-24 09:29:16 938

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除