自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

原创 初探HTTPS

HTTPS可以说是面试问的频率非常高的一个点如果不知道这个东西,可能就凉凉了,因为现在https用的很多如果知道,他是安全的,和TLS,还算勉强如果熟悉他的加密、握手、签名原理,面试官绝对会高看你一眼学习自https://www.jianshu.com/p/6c981b44293dHTTP是明文的,假如你拿到了post的body,里面的数据你会直接看到,是没有经过加密的,这就是明文HTTP存在3个...

2018-04-30 12:50:48 180

原创 面试算法题:扑克牌问题,逆过程分析

这是面试的时候碰到的问题由于当时没有进入算法的状态实现的不是特别的优雅就是手上有一堆牌先取顶上一张放到桌上再取顶上一张放到这堆牌的底部以此类推给了你最后桌上的序列求你原来手上牌的序列很快就可以分析出来“先取顶上一张放到桌上再取顶上一张放到这堆牌的底部”可以转化为“隔一张放一张到桌上再对剩下的牌做同样的操作”我当时发现逆序是真TM的难求所以用一个HashMap存了index然后对index操作最后还...

2018-04-29 09:29:02 4695 1

原创 用两个栈实现一个队列

这是我面试的时候碰到的问题我的解决方法很粗糙要入的话,把s2的倒回s1,再入;要出的话,把s1的倒入s2,再出;其实这样最好:入,直接入s1即可;出的话,如果s2有直接出就可以,没有的话,把s1的都倒入s2...

2018-04-28 20:27:56 145

原创 RecyclerView复用ViewHolder机制(简单了解)

本文特别low我设置item为200dp,打印20个,发现onCreateViewHolder仅仅执行了9次int i = 0;@Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { Log.i(TAG, "onCreateViewHolder: " + ...

2018-04-28 11:22:41 4717 2

原创 Android multidex

学习自经典文章:https://www.cnblogs.com/codingWarrior/p/5111957.html65535原因1.优化dex的内存有限制,只有几兆2.short存储method、field、class。所有最多65535方案除了第一个dex,其他dex都以资源的形式放在安装包里,在Application的onCreate中把其他的dex注入到系统的ClassLoader编译...

2018-04-27 23:57:11 505

原创 数据库聚集索引、非聚集索引

学习自https://www.cnblogs.com/auxg/p/Cluster-and-NonCluster-index.html 索引不用说了 聚集索引就是比如取快递22架11层0号包裹,你是否能很快找到 非聚集索引同样是快递22架11层0号包裹,这个22架的附近并不是21,23,也就是说是乱序的,层号也是,包括号也是。真是找死人了。。 有利有弊,...

2018-04-27 20:37:04 153

原创 Android进程保活

www.jianshu.com/p/53c4d8303e192个方法:1.不让杀2.杀了复活进程优先级1.前台进程 resume2.可见进程 pause3.服务进程 音乐、下载4.后台进程5.空进程提升优先级1.前台服务(启用2个前台服务,消除通知),变成可见进程2.广播监听锁屏解锁,启动1像素活动杀了复活1.提示勾选白名单2.双进程保活3.onStartCommand中返回START_STICK...

2018-04-27 17:18:15 151

原创 Js Java互相调用

两篇超详细的良心攻略https://www.jianshu.com/p/3c94ae673e2a web view的api介绍https://www.jianshu.com/p/345f4d8a5cfa java js互调java调用js准备一个html文件<!DOCTYPE html><html><head> <meta charset="...

2018-04-27 00:02:25 6229

原创 jni c调用Java代码

https://blog.csdn.net/qq_36523667/article/details/80093935这一篇包含了配置以及java调用c本文建立上文基础上c调用javac代码替换如下/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_e...

2018-04-26 16:07:44 268

原创 Android Studio 3.0以上配置NDK、调用C代码、生成so库

终于成功了55555555555看了3篇文章才搞定,坑太多!!!!!!!第一篇,配置ndk环境https://blog.csdn.net/u014651216/article/details/524108092.NDK安装与配置首先创建一个Android项目工程,File-->New-->New Project,一路下一步就好,最后finish创建完成项目.打开Project Stru...

2018-04-26 14:58:34 1166 1

转载 在北京做Java开发如何月薪达到两万,需要技术水平达到什么程度?

转载自https://blog.csdn.net/csdnsevenn/article/details/80059642他说的3点,太对了,一看就是真正懂的人点击上方“程序人生”,选择“置顶公众号”第一时间关注程序猿(媛)身边的故事本文系 听香琴乱 对该问题的回答如需转载,请联系原作者。有人说这只能是大企业或者互联网企业工程师才能拿到。也许是的,小公司或者非互联网企业拿两万的不太可能是码农了,应该...

2018-04-26 13:52:01 651

原创 Android面试题小汇总

学习自https://mp.weixin.qq.com/s/NBrEwFI8e8xtLsX0uadm7w本文东西多的不谈了Activity如何与Service通信?ServiceConnection并bindServiceService的生命周期有startService的有bindService的(它是所有调用者退出,这个服务端就退出了)放到一起就是create->onStartComma...

2018-04-25 23:00:08 219

原创 Android系统架构图

学习自https://mp.weixin.qq.com/s/NBrEwFI8e8xtLsX0uadm7w看了感觉受益良多,或许Android的学习就应该按照这个系统架构图来!应用层Binder层Framework层,WMS,AMS,PMS分的很清晰运行时层。linux进程在开发者眼里是透明的,我们的安卓就好像运行在runtime层一样硬件抽象层linux内核层...

2018-04-25 12:40:24 4626

原创 Android启动优化之startActivity的底层实现

本文没啥用 不涉及任何优化 但是总感觉不总结一下说不过去 因为我们毕竟分析的是启动优化 这个不了解透彻感觉本末倒置了 所以就简单整理了一下以launcher为例(毕竟做启动优化主要针对的是冷启动)startActivity查询符合要求的activity并让用户选择创建activity record为activity创建或找到task并设置flags如果目标进程不存在 创建进程(下面是创建进程)la...

2018-04-25 11:23:00 746

原创 Android启动优化

学习自https://www.jianshu.com/p/f5514b1a826c这个老哥,强的不谈,大家可以去看看他的文章,干货满满。冷启动流程先(过几天我会回顾下启动流程并修改这3步)1.加载app2.显示空白bg window3.创建app进程然后(这几步我进行了补充)1.创建app对象2.启动main thread3.创建activity4.onCreate通过xml parser、反射拿...

2018-04-24 23:52:16 215

原创 onStart和onResume的谬误

onStart()和onResume()的区别onStart()是activity界面被显示出来的时候执行的,用户可见,包括有一个activity在他上面,但没有将它完全覆盖,用户可以看到部分activity但不能与它交互onResume()是当该activity与用户能进行交互时被执行,用户可以获得activity的焦点,能够与用户交互。突然想起来我曾经搜索过这个问题,看了这个答案并信以为真,其...

2018-04-24 22:25:35 702

原创 Android电量优化

目前先写一个low版本的过两天来个超详细版本的电量优化学习自http://hukai.me/android-performance-battery/电量1.合理用wake lock不让屏幕锁定、并合理释放wake lock2.电量充足或者充电中的状态,进行某些操作,如上传歌曲、图片处理3.打包零散网络请求,因为无线信号的电量消耗是很大的4.预取5.JobScheduler等到正在充电或者连接到Wi...

2018-04-24 21:26:54 223

原创 Android电量优化之JobScheduler

本文只是粗浅的写个demo,惭愧,目前不愿深究它JobScheduler目前就我认知解决4个问题:1.打包操作2.充足电量、充电情况3.wifi、移动数据情况4.休眠servicepackage com.example.demo;import android.app.job.JobParameters;import android.app.job.JobService;import and...

2018-04-24 21:23:27 344

原创 Android内存优化

学习自http://hukai.me/android-training-managing_your_app_memory/个人总结出的比较精华的东西(希望看官能够一一去实践):1.内存抖动。monitor中可以看到这个现象。他还可以手动GC、查看内存中具体包含了哪些对象。2.创建太多对象3.对于大量的同类型的对象,可以考虑采用对象池技术,当然对象池得自己手写4.内存泄漏。一个特别好的工具LeakC...

2018-04-23 22:10:13 136

原创 Android内存管理机制

学习自https://www.cnblogs.com/lianghe01/p/6617275.html总体机制Android开发者眼里的内存是虚拟的,paging式的,连续的空间(page是gc最小单位)实际上他是的每一页都要从ram中mapping过来所以Android的内存在实际ram中是分散的分为native进程java进程,是建立在native进程基础上的注意点new对象不会立刻进行map...

2018-04-23 21:08:44 195

原创 Android运算、代码优化

学习自http://hukai.me/android-performance-compute/http://hukai.me/android-training-performance-tips/1.会用trace view进行分析,分析两种情况:1、执行之间长的;2、执行时间短但是执行次数多的2.两个思想:1.重复的操作做一次,比如二分查找前的排序,做一次即可;2.缓存3.算法:学会在不同场景选择...

2018-04-23 19:28:14 169

原创 Android渲染优化之视过度绘制、减少嵌套

学习自:https://mp.csdn.net/postedit如果刷新频率是60hz,每16ms就会打一次信号,请求一个绘制。所以一个绘制不要超过16ms。如果1秒绘制了60帧,那么它的fps就是60。比较显著的一个问题就是过度绘制开发者选项中可以开启查看原色:没有过度绘制蓝色:1 次过度绘制绿色:2 次过度绘制粉色:3 次过度绘制红色:4 次及以上过度绘制模拟器自带的设置界面过度绘制是非常严重...

2018-04-23 12:30:56 469

原创 模块化、组件化、插件化的区别 来自乡巴佬的理解

借鉴自https://blog.csdn.net/cdecde111/article/details/78705386模块化用户模块-线上商城模块-o2o模块-购物车模块。。。组件化一个app分多个module。主module会在gradle中implimentation本地其他的module或者把module放到网上,compile下载下来插件化把不同的模块,放到不同的apk里。主模块以外的模块...

2018-04-22 23:24:06 743 1

原创 Android启动优化之PreLoader

学习自http://www.wanandroid.com/blog/show/2089preloader框架看起来不错(如果希望精确掌控自己项目,慎用或者研究透了preloader再用,本文分析的很粗浅),所以我冒昧地简单分析一下他的可以借鉴的地方提供的几个应用场景(我们从中也可以得知启动优化的一些技巧)1.Application.onCreate中预加载地址,在需要用到地址的地方拿到我们预加载的...

2018-04-22 23:01:33 1603

原创 Android APK瘦身

可以看看http://jayfeng.com/2016/03/01/Android-APP%E7%BB%88%E6%9E%81%E7%98%A6%E8%BA%AB%E6%8C%87%E5%8D%97/这篇文章对文本有补充reslint工具找到程序中的问题shrinkResources混淆语言支持仅保留zh enwebp转换(版本、机型覆盖率不太高!)tinpng微信打包工具facebook red...

2018-04-22 12:16:52 187

原创 Android Sophix热修复 集成中遇到的问题

集成文档可以参考官方文档https://www.jianshu.com/p/8ea4d653a53e终于成功了我在集成中遇到的问题1.app id的问题官网显示的是app你需要再功能里 上传一个补丁后 点击补丁的详情 才能看见你的app-id2.application中代码问题public class SophixApp extends Application { @Override ...

2018-04-22 11:48:59 1827 3

原创 Android APK瘦身之减小res

学习自https://juejin.im/post/58d9b6a1a22b9d0064719f9e1.移除不用的resbuildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules....

2018-04-22 00:15:06 463

原创 Android APK瘦身之Android Analyser

打开方式非常简单直接把APK拖到AS里去即可Android Analyser结果发现是so库太过庞大。。。没辙了,我这里的情况可以删去一个arm的,估计可以减小32m左右。。。到时候还要再测试看看,能不能稳住。。。 ...

2018-04-21 23:32:38 245

原创 侵入式设计和非侵入式设计的理解

比如Android的RecyclerView做下拉刷新如果你从Adapter内部入手去制作,这叫侵入式如果像官方的SwipeRefreshLayout一样,这叫非侵入式官方的下拉刷新就很神奇他只需要在RecyclerView外面套一层SwipeRefreshLayout,他就拥有了下拉刷新的功能这是很好的非侵入式实现我后来自己仿照着这个思路写了一个原理大概就是在自定义这个下拉控件的类里我会通过ge...

2018-04-21 23:20:52 1601

原创 Android渲染优化之卡顿检测、统计fps

学习自https://juejin.im/post/5a6fd7b86fb9a01ca47ac6e8adb shell dumpsys gfxinfo这个是一个方法,但是用的不多从looper入手// This must be in a local variable, in case a UI event sets the loggerfinal Printer logging = me.mLo...

2018-04-21 23:10:13 1696

原创 Android启动优化之IdleHandler

学习自:https://juejin.im/post/5a6fd7b86fb9a01ca47ac6e8假想网络很差的这样一个场景,我们非得等网络请求到位以后才更新UI的数据吗?一直给以一个waiting dialog必然极其影响用户体验。所以,我们需要显示预数据,可以是你预定义的默认数据,也可以是用户之前使用过的我们偷偷IO缓存下来的数据。这证明了一个道理:我们需要在UI显示后,再进行耗时操作。(...

2018-04-21 22:14:19 4045

原创 JVM DVM ART初探

学习自https://blog.csdn.net/itachi85/article/details/72861179JVM解释器基于栈DVM解释器基于寄存器,速度快JVM .java->.class->.jarDVM .java->.class->.dexDVM每一个进程都是一个虚拟机,一个进程crash不影响其他进程的工作DVM由Zygote fork自身创建出子进程DV...

2018-04-21 12:15:43 226

原创 JVM基于栈的解释器执行原理和DVM基于寄存器的解释器执行原理

基于栈 学习自https://blog.csdn.net/jijianshuai/article/details/73739995代码public static int add(int a, int b) {int c = 0;c = a + b;return c;}字节码descriptor: (II)Iflags: ACC_PUBLIC, ACC_STATICCode:    stack=2,...

2018-04-21 11:36:32 917

原创 Android APK瘦身之混淆

minifyEnabled设置为true然后要让你的apk build成release的,而不是debug的发布release可以看https://blog.csdn.net/to_perfect/article/details/69048419配置混淆规则,让有些东西设置成不被混淆混淆模板可以看https://blog.csdn.net/ccj659/article/details/517986...

2018-04-20 23:34:25 306

原创 前后台传图片,仅做个人记录

很久以前,自己仿开源中国,然后也搭了一个后台,那个时候,Android端图片上传倒还好,后台取出就有点麻烦了。后来采取图片转流转base64 string的形式搞定了。(最近清理代码库,本文仅做个人记录,见谅)涉及base64流流程从相册取得bitmap文件(或者直接拍照)bitmap转bytebyte转stringstring放入request里请求后台取出stringstring转byteby...

2018-04-20 22:38:21 1059

原创 Android APK瘦身之Lint工具实战

使用前点击选择整个项目底部出现这个放近点看乖乖地改完后也没减少多少啊。。。555555

2018-04-20 21:09:53 288

原创 数据库单表查询

基本格式select xfrom xwhere xorder by xgroup by x有些关键词不用刻意记,用到的时候去百度下就可以,下面几个是注意点1._asc||下一个汉字需要两个_gbk下需要一个2.escape/字符后面的都是普通字符,即%这种也会被当成普通字符来看待3.聚集函数count sum这种4.order by以什么排序5.group by把某条件相同的东西放到一起...

2018-04-20 17:36:40 212

原创 Android网络请求优化

学习自trinea大神还有一些另外的文章分析工具1.Android内置的profile(monitor)不仅可以看网络,还可以看内存,cpu2.提供弱网的工具,测试弱网;还有wifi情况3.截获网络包,进行分析url一般是用域名直接请求的,虽然local dns会缓存,但是最好还是能用其他的方式1.直接请求ip2.http dns4大策略1.提前取2.分优先级,比如你要拿数据来更新UI,这个优先级...

2018-04-20 13:49:07 1358

原创 个人对RxJava的看法,应该用它吗?

RxJava是很好的工具,封装了许多规则优点1:简化逻辑比如要嵌套请求的时候,这个时候用flatMap操作符就可以实现优雅的链式嵌套请求优点2:简化代码他的操作符封装了规则,我们用一个操作符就可以实现许多功能比如要打包网络请求,这个时候用zip就可以打包数据源优点3:最方便的线程切换这些东西,自己当然也可以实现,用代码量去取代这一个个操作符,自己实现也会复杂化逻辑。所以面临两个问题:代码量膨胀后的...

2018-04-20 00:13:38 2225

转载 Android开发的难点

转载自https://www.zhihu.com/question/29466887?sort=created网上搜了许多次,都是不知所云;知乎上问了,也是无人回答。最终无意间看到Trinea大神的回答,觉得有帮助。技术是没有止境的,所以肯定会不断有演进和难点。一. 总体上总体上我是赞成 @曹先进 的说法,Android 开发跟所有应用开发同理,底层和框架如何更好设计及优化以适应业务的高速增长。...

2018-04-19 23:33:27 1452

空空如也

空空如也

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

TA关注的人

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