自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Marshon的专栏

克己,无私,奋勇,职责。成功的人永远让自己保持忙碌,让自己保持兴奋,喜欢自己手头上的任何事情。

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

原创 Android系统启动后Launcher启动(概述)

Launcher启动流程1、AMS的systemReady()上回讲述了《Android系统启动流程》,当系统在Framework层经过一系列多种语言程序有来有回之后,系统服务会被其中,其中包括AMS,startOtherServices()方法执行后阶段,各种被启动起来的Service会各种掉systemReady();其中AMS的systemReady就会被调用,这时候就是...

2018-02-09 19:30:07 1293 2

原创 Android系统启动流程

系统启动流程我们知道,Android系统是基于Linux改造出来的,所以继承了Linux很多特性,包括进程管理。在系统启动过程中,第一个启动的进程是Init进程,后面所有Fork出来的进程都是它的子孙后代,包括跟Android紧密联系的Zygote进程也是Init进程衍生的。1、系统启动前期-Init进程当按下开机按钮后,系统启动开始挂载设备,初始化Init进程,其中入口函...

2018-02-08 16:34:54 354

原创 Kotlin学习笔记二(数据类型)

7种基本类型> Byte 1字节> Short 2字节> Int 4字节> Long 8字节 > Float 4字节> Double 8字节> String <=2字节位运算shl(bits) – 有符号左移 (Java 的 <<) shr(bits) – 有符号右移 (Java 的 >>) ushr(bits) – 无符号右移 (Java 的 >>>) and(bits) –

2017-08-30 22:08:16 279

原创 Kotlin学习笔记一(基本语法)

Kotlin定义函数定义函数一 :fun 方法名(参数):返回值类型{ 函数体 } fun sum(a: Int, b: Int): Int { return a + b}如果返回值为空(无返回值) 则类型可以写成Unit或省略.定义函数二:fun 方法名(参数) = 表达式fun sum(a: Int, b: Int) = a + b如果函数体只是一个表达式(包括逻辑表

2017-08-28 22:39:59 375

原创 Flutter遇到open too many open files大坑之路

Flutter 踩了个大坑。问题描述:在Flutter工程下,项目能够正常编译,运行。在Android工程下:运行报错,报错很混乱,关键信息是Too many open files。修改系统增加打开的文件数后,发现还是一样。借了灵台一台mac来编就又正常。非常之头大,不过至少我能确定的是,代码是没问题的。这种情况下,当然打包也失败了。在IOS工程下:也坑了。项目可以正常运行,但打包出错。看错...

2020-04-17 21:19:04 1998

原创 Flutter框架设计,我真的再也不用MVC、MVP了

MVC、MVP、MVVM架构设计的方式,在Android中广泛被使用。从本质上我认为,MVC和MVP其实将View层的代码解耦到Controller/Presenter中。随着业务的复杂,C/P中代码积累的多了,然后又开始解耦一些Model或Interactor或其他。随着业务再度复杂,每一个层的业务都很多代码了, 然后各种分层设计就出来了等等…那回归到最简单的MVC、MVP模式来,我们可以发现...

2020-04-04 20:58:12 4807 1

原创 Flutter中举步维艰的WebView,终于实现了加载本地html

1、需求背景实现一个不全屏的,支持加载本地html资源的webview2、结论先行选用了官方的webview_flutter。总结了下实践的过程,分析几个插件有如下特点:flutter_inappwebview:问题:1.键盘有时候收不起来.2.文本框不响应文字输入3.部分Android机型上,js->flutter 不通.分析查看是native层的js接口没...

2020-04-04 20:57:03 10446 1

原创 Flutter开发中这几个大坑尽量轻踩

记录一下这段时间入手Flutter后踩过的一些坑,这些坑希望后来的人踩的越少越好。现默认读者已经是懂得Flutter初步开发基础的程序员。坑1问题:在debug模式下,App启动第一个页面会很慢,甚至是黑屏。解决:请切换到release模式,或者使用flutter build apk 打出来的release包不用修改任何代码就可以解决问题。坑指数:⭐️⭐️⭐️坑2问题:使用官方做法集成...

2019-06-15 11:08:20 7373 1

原创 Binder在Android系统中的运用

了解Binder还需要知道这些-Binder在Android系统中的运用1.关于Binder的历史OpenBinder为什么采用2.Binder工作原理简介C-S 内存拷贝用户内存空间-内核内存空间-用户内存空间3.Binder在Android系统中的运用1、场景startActivitysendBroadcastbindService2、bindService3、不用...

2019-02-25 21:45:04 286

原创 Android一种实现任意View圆角的方案

一种实现迫不得已的圆角实现方案该方案只针对那些“善变”的View如 SurfaceView、ListView、Viewpager等可滑动实现的圆角方案,一般情况下你不会用到,用到说明你已经基本无奈了。 这是一种经过调研后的“勉强”实现圆角方案,其中需求背景是在ViewPager、ListView等可滑动系列View的圆角方案,并可在SurfaceView、TextureView上使用圆角。用...

2018-05-29 08:52:01 13699 1

原创 Gradle依赖库选择库的flavor

compile project(path: ‘:sdk’, configuration: ‘falvorname’)

2018-04-11 17:00:46 1595

转载 Android Studio升级后编辑build.gradle文件顿卡很卡

Android studio更新到2.2后,编辑module下的build.gradle文件就卡顿很久,然后才能反应一下,再次输入,又卡顿,非常恼人。在公司使用Android Studio2.2.2 的时候,编辑build.gradle的时候,速度还是很快的,非常奇怪,到底是什么原因呢? 在网上搜索了半天,提升Android Studio的提升编辑性能的所谓教程(加大vm的内存大小等),都...

2018-03-29 10:46:03 2186 5

原创 Android系统关机流程

概述:Android的的电源键按住后,会发送出Power键事件到PhoneWindowManager里,这时候弹出dialog关机提示。点击关机按钮事件触发了WindowManagerService的shutdown()方法。后续最终调用了ShutDownThread,关机之前把各种系统级服务也shutdown停止,最后调用属性服务来设置属性”sys.powerctl”, “shutdown”,属...

2018-03-09 17:26:19 548

原创 Android绘制Paint学习笔记

一.Shadow1.LinearGradientShader shader = new LinearGradient(100, 100, 500, 500, Color.parseColor("#E91E63"), Color.parseColor("#2196F3"), Shader.TileMode.CLAMP);paint.setShader(shader);canva

2017-08-09 21:39:21 378

原创 Activity的setContentView看View的绘制流程

Activity 的setContentView看View的绘制流程1.Activity.setContentView public void setContentView(@LayoutRes int layoutResID) { //获取window = PhoneWindow对象 getWindow().setContentView(layoutResID

2017-08-03 21:26:59 280

原创 Android滤镜绘制

一、graphics提供的滤镜 二、颜色RAG的滤镜处理内置滤镜注意: 使用滤镜之前先关闭硬件加速 view.setLayerType(LAYER_TYPE_SOFTWARE,mPaint);MaskFilter继承MaskFilter–BlurMaskFilter ,用来设置模糊滤镜 mPaint.setMaskFilter(BlurMaskFilter(float radius, Blu

2017-08-03 20:13:39 1104

原创 Android Studio 更新后报错 transformNativeLibsWithStripDebugSymbolForGeneralDebug

错误信息:Error:Execution failed for task ':app:transformNativeLibsWithStripDebugSymbolForGeneralDebug'.java.lang.NullPointerException (no error message) 如果你装了NDK,或又是AS 3.0等等 那你就会被各种警告缠身还编译不好,好玩吧“`//忽略翻

2017-08-01 10:21:54 326

原创 Canvas,Paint方法记录(一)

Canvas,Paint方法记录Canvas.draw*Paint基础:Paint.setStyle(Style style) 设置绘制模式 Paint.setColor(int color) 设置颜色 Paint.setStrokeWidth(float width) 设置线条宽度 Paint.setTextSize(float textSize) 设置文字大小 Paint.setAnti

2017-07-28 15:54:42 491

原创 Android Studio模板开发基础教程

Java模板开发一、案例修改项目包名设计模式通用功能工程构建二、FreeMark介绍1.为什么是FreeMarker? JSP JavaWeb常用技术,通过在HTML页面技术里插入Java代码,动态生成Servlet代码。反过来解释,将页面表示逻辑从Java Servlet中抽离,结合HTML生成一个模板文件,通过编辑Jsp动态修改Controll层逻辑。

2017-05-24 22:07:35 1686

原创 Git常用命令汇总

Git命令行1.仓库初始化 git init 2.内容确认 git diff git log git checkout – (把最后一次修改撤销) 1.commit 2.add (首先会从暂存区获取,如果没有,就去仓库里最后一次commit的文件获取) 3.提交 git commit

2017-05-24 20:24:20 256

原创 解决Handler导致的内存泄漏真实样例

背景最近自己项目上用了网上的AutoScrollViewPager 开源Viewpager。没怎么关注别人开源的项目一些代码质量问题, 因为潜意识上别人开源在网上的肯定是令人满意的代码。最近意识到了这种心态其实并不好,而且不利于自身技术的提升。样例贴这个View的内存泄漏的样例,是因为发现很多程序员们在使用一些第三方开源框架,特别是一些自定义view的特效时,会用到一些延时任务之类的,那就会用到Ha

2017-02-19 21:42:11 1943 1

原创 解决Retrofit2 Okhttp3 返回ResponseBody出现java.lang.IllegalStateException: closed

09-05 14:42:17.606: E/AndroidRuntime(28219): Caused by: java.lang.IllegalStateException: closed 09-05 14:42:17.606: E/AndroidRuntime(28219): at okhttp3.internal.http.Http1xStreamChunkedSource.read(

2016-11-24 23:58:48 9139

原创 解决Glide加载图片问题!!!

Glide加载图片变形? Glide在listview,RecyclerView中滑动时图片错位?大小不固定? Glide加载圆图变成扁图? Glide在列表里下滑扁的,上滑正常?为虾米?--请把Glide.with(context).load(url).placeHolder().into(); 请把placeHolder去掉! 请把placeHolder去掉! 请把placeHold

2016-11-23 21:50:55 6662 1

原创 解决AndroidStudio的Gradle构建速度太慢的终极方案!!!

Gradle太慢?真心受不了。今天也是被折腾的够惨的。 首先,1.你的电脑要有无限网卡,如果没有,买一个。2.准备一台可以上网的手机。3.配置好你的项目依赖。接下来,到关键的一步了。1.拿出你的手机。 2.打开4G上网流量。 3.打开个人热点,发射wifi。 4.打开工作电脑WLAN,连接wifi。 5.这是最后一步也是关键的一步,在AndroidStudio上找到这个图标。点击,坐等5分

2016-11-21 23:22:30 3844 1

原创 拒绝重复制造轮子, 一起来让开发一“键”化

前言一键实现启动页功能一键实现引导页功能一键实现RecyclerView列表一键实现Tablayout+ViewPager功能总结前言从开发web到android,至今也快两年了,代码也敲了不少。相信很多程度程序员在成长过程中也有过和我一样,项目做着做着很多重复的工作,做多了感觉代码趣味性没那么高了,在水群里常常看到有人问到,比如能不能创建工程的时候就把项目架构搭建好,一些常用的代码或者

2016-11-08 18:16:24 1048

原创 Android 自定义视频录制终极解决方案(翻转问题)

Android 自定义视频录制翻转问题终极解决方案自定义视频录制使用系统可用播放器前后摄像和视频反转问题总结自定义视频录制mediarecorder = new MediaRecorder();// 创建mediarecorder对象 mCamera = getCameraInstance(); // 获取camera if (null == mCamera)

2016-11-04 18:41:43 18775 12

原创 Java设计模式之策略设计模式

哎~ 周末一下就过去了, 时光荏苒,打了两天LOL,罪恶感倍增 看看这些: 就算这样,无数次的超神并没有让我当上CTO,迎娶白富美,走上人生巅峰,从此过上幸福的生活。更多的是一种激情过后的失落感和挫败感。经过挣扎之后我决定沉淀了下来,看看设计模式的精华书籍。或许它能给我带来些许的成就感。同时也感恩您的包容,看我B了那么久却没有关闭.本节内容:策略模式的使用场景 策略模式的定义

2016-09-26 16:55:26 550

原创 Dagger2:基于android的Spring?

Dagger2 基于android的Spring前几天刚好项目不忙, 去看看Dagger2的学习资料,为什么到现在才看它呢? 也许是它不容易上手一个原因吧, 但更多的是我个人的执念,我就觉得基于注解和反射的东西都不是什么好东西? 呵呵 , 但最近看到它是越来越多的被集成于的项目中去,并且经常和rxjava绑在一起使用,感觉也是非常的牛逼。大家都说好,那我也虚心学习下咯。学了几个小时次,总结

2016-09-26 11:27:04 1845

原创 Java设计模式之工厂设计模式

Android设计模式之工厂设计模式感叹一下, 世界变化的好快, android的时代跨越也越来越快,从去年这时候android市场达到巅峰而如今,在群里经常看到有人哀怨找不到工作了,也是深有感触。 --------- 深沉的我整理下发型,回归正经话题,工程设计模式指的不是一种设计模式, 那是什么呢?答:它确实不是一种设计模式,而是两种, 就是这么调皮,膨胀了,看来要找个女朋友管管了。。。1、

2016-08-19 17:13:43 300

原创 记Rxjava 学习(一)

前言 rxjava接触过好几回了, 但一起来又感觉无厘头, 又放弃了。一来一回,这东西就跟弃妇一样被我放弃了好多回,想想都替他感到可怜,这次为什么还要回来学习它呢?俗话说,纸包不住火,是金子都会发光的,它是越来越火了。果出我所料,它还是引起了本宝宝的注意⚠️。 这好玩的东西火在什么地方呢?为什么说它好的同时, 又人又疑问的说, 这东西不是增加了代码量嘛,而且更加不易于读懂了。这先放一放,这里用一

2016-08-12 17:37:59 282

原创 Android RecyclerView+item动画+下拉刷新,上拉加载更多,侧滑删除(易用可定制)

MRecyclerView两个星期没开发任务了, 刚好有时间整理下自己的项目,最近很多朋友也是碰到一些坑,项目里经常用到侧滑菜单,但用了好多网上很多的开源如swipelistview,发现和listview滑动有冲突,也是碰了一些坑,在此本人研究了下,总结出一些有用的东西给盆友们,少踩些坑,希望方便到各位盆友并Get到盆友们的支持,喜欢的star或者fork下。下拉刷新,上拉加载更多(可DIY):支

2016-07-26 18:16:06 4864

原创 Java设计模式之单例设计模式

Java计模式-单例设计模式

2016-07-25 11:45:02 459

原创 教你如何实现华为,小米,魅族等定制等系统应用间的跳转,权限管理,自启动管理等与定制rom交互(也是基于反编译研究成果有感怕忘记下来)

不用想的很高大上,菜鸟一枚不用多想, 研究了几天的反编译, 学到不少, 怕忘赶紧记一下.呵呵.首先,先搞明白什么叫反编译, 它是一种逆向技术, 像一箱水果装在箱子里,从新疆客户那边运输过来, 我们要想知道里面装的是什么水果并且吃掉它,就要先拆开箱子知道里面装的是什么,然后才能吃到这新疆新鲜的西瓜.反编译过程这里大概一句带过:apk-->dex-->jar-->java用到:apktoo

2016-05-25 11:12:44 3980 1

原创 Android懒人专用RecyclerView+懒人专用Adapter+懒人专用animator+下拉上拉侧滑等

最近离职了, 求包养求带走..也是够惆怅了, 回家做了个手术,对鼻子造成了成吨的伤害,痛的我是侧夜不眠呀,不过也趁机刷了一波怪,学习了不关于framework、设计模式的知识。因为本人也比较懒,只要高效的,少量的代码可以实现全面的功能的东西都喜欢拿来鼓捣一下,最近灌github,codeKK等开源网站,发现很多开源的框架让我兴奋的不能自已,不过也感觉有不足的地方,功能比较针对性,不够全面,故此

2016-04-26 19:49:08 3120

原创 Android分包方案

最近加入一个新团队, 项目巨大!!!!好吧,其实也不是巨大,只是module依赖比较多, 整整12个- - ,从来没遇到过这么多的依赖, 编译速度被拖得好惨....也是因为这样, 出现了65K 问题 . 就是整个项目,也就是整个.dex文件中的方法数超过65535个了, 承载不下了.  这个原因往往出现在 中型以至大型项目才会有.这是个局限. 那么需要将一个.dex包拆分成两个包了.在拆分

2016-03-18 10:34:03 5113

原创 Android理解四种启动模式

前言涉及到Android启动模式的知识,首先要提一下 任务栈。它是一种后进先出的线性存储数据结构。它仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。1.standar  :俗称

2016-02-26 15:01:55 436

原创 Android屏幕适配方案---基于官网文档结合个人理解

前言今天无开发任务,闲着没事就看下书,看一章节觉得没爱了,接去官网逛了下,突觉还是官网写的比较人性化,翻译过来反而难懂了有木有。好吧,不要怀疑,本人英语是厉害了点,刚过四级,嘿嘿。其实还算勉强,在这里提供个大家看英文文档的小技巧。俗话说,擒贼先擒王,看文档先看目录,这句话一点也不假。就官网的技术文档来说,左边是大纲,除此之外,在正文的右上角还有本章小目录。所以,急着看正文长篇大论不

2016-02-25 15:00:52 558

原创 Android消息机制-深入理解消息队列的工作模式

前言队列:队列是一种简单的先进先出的数据结构。 在代码中, 对队列的操作应该加入同步机制,因为队列可以接受多个线程同时向队列发送消息。Android消息机制中的成员这里可以用一句话描述消息机制设计到的成员:消息发送者发送消息给队列传递到消息处理。1.消息承载体(Message)这个不用解释了,就是装消息的包。值得注意的是,Android消息机制中的消息倾向适合数据量比较小的场合

2016-02-25 11:30:58 1947

原创 Android内存优化--内存泄露解决方案

前言在Android中, 内存优化相对还是很重要的,Android手机不像电脑,系统分配的堆大小开始为16M,后来普遍提升为24M,虽然从硬件上优化了不小,但从宏观上来说,还是少的可怜。所以在Android中,内存优化也是作为成熟程序员应该注意的地方。关于Davilk与Java中的JVM因为Android系统的小,自然跑起来很吃力,不适合大人们(电脑)的世界(可能不是这个原因),Goo

2016-02-24 17:53:32 469

原创 Android优化视觉---伸展动画

第一次写博客, 不足之处望多多包含本小弟弟.之所以开始学博客,源于看过一BAT大神写的一篇文章有感,从来不用脑机, 用笔记, 不得不承认这是个事实, 所以想想也挺对的.本人不算聪明,希望勤能补拙了.为什么写动画?相信很多刚开始接触工作的同学也有感触, 动画这种东西看起来酷炫, 自己写就难了, 最后还要搞得怀疑下 自己到底是技术问题还是审美问题?总之,踩的坑相信也不少.本宝宝也是受害人之

2016-02-19 16:58:59 2009

空空如也

空空如也

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

TA关注的人

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