常兴E站

Action Speak Louder Than Words.

你最了解的 SharedPreference和ContentProvider 知多少?

在技术学习的道路上,往往最常见、用的最多地方,却有着容易忽略的技术细节。某个时间点蓦然回首,才发现最应该了解和掌握的技术基础,却由于缺少总结和记录、或者是因为常态思维固化缺少场景去思考,却显得那么陌生。 这篇文章将从作者自身的角度,去重新认识SharedPreference和ContentPro...

2018-04-01 18:50:01

阅读数 203

评论数 0

Java内存问题思考

前些天,有人问到 “开发过程中常见的内存泄漏都有哪些?”,一时脱口而出:静态的对象中(包括单例)持有一个生命周期较短的引用时,或内部类的子代码块对象的生命周期超过了外面代码的生命周期(如非静态内部类,线程),会导致这个短生命周期的对象内存泄漏。总之就是一个对象的生命周期结束(不再使用该对象)后,依...

2018-03-26 19:13:28

阅读数 311

评论数 0

安卓平台中的动态加载技术分析

安卓平台的动态加载原理,本质其实还是利用java相关知识实现。然而java语言中,开发人员能通过程序进行动态操作class的,主要是字节码生成和类加载器这两部分的功能。本文中也主要是围绕这两方面的技术,展开在安卓平台上的应用分析。阅读本文,一起宏观理解安卓插件化,热修复,模块化,AOP,Java类...

2018-01-08 17:51:37

阅读数 234

评论数 0

Lifecycle+Retrofit+Room完美结合 领略架构之美

安卓开发技术发展到现在已经非常成熟,有很多的技术专项如插件,热修,加固,瘦身,性能优化,自动化测试等已经在业界有了完善的或者开源的解决方案。 作为一枚多年的安卓研发,有必要学习或了解下这些优秀的解决方案,领略那些行业开创者的思想魅力,然后转化为自己的技术技能,争取应用到日常的开发中去,提高自己研...

2017-12-11 16:18:00

阅读数 5010

评论数 6

Gradle插件开发 APK瘦身资源自定义7z压缩

APK瘦身实战 资源自定义7z压缩项目开发中,随着业务的增长,常常需要在apk编译阶段对包代码或是资源做一定的自定义修改,比如热修复,插件生成,无埋点统计,渠道包生成等等。但是公司项目业务开发人员基本上都很少接触到相关技术,这里以学习的态度,实现一套用7zip压缩apk资源文件的gradle插件。...

2017-11-23 10:04:43

阅读数 1033

评论数 2

免sdk实现微信/支付宝转账打赏功能

安卓开发者都应该有一个属于自己的APP发布到市场,可以完善自己的技术站之外,加入广告,还可以有一份小收入。 但是这个年代,各家的应用市场是不欢迎带广告sdk的个人开发者应用的。还好我们可以用插件技术加入广告sdk,或者直接想一种方面实现打赏功能,让用户通过支付宝或微信转账到自己账户。免sdk实现...

2017-09-21 20:00:46

阅读数 2739

评论数 1

知识总结之 插件化学习 Hook系统方法分析

这里主要讲的Hook,是利用java上的动态代理实现替换系统某个类,在方法调用过程中,利用反射,插入自己代码逻辑的一种方式。安卓插件化学习 Hook系统服务分析Hook技术主要用的是java的动态代理,掌握类动态代理,其实不难理解Hook原理,只不过是找到一个我们需要的Hook点,然后动态代理获取...

2017-06-15 16:13:03

阅读数 582

评论数 0

知识总结 插件化学习 Binder机制原理

Binder是android系统特有IPC方式,安卓平台中的各种服务交互基本都是Binder机制实现,理解和掌握Binder机制的实现原理可有效提升软件性能优化点,同时Binder机制的应用也是动态代理方式实现插件化基础。安卓插件化学习 Binder机制原理分析网上虽然已有很多Binder类似的优...

2017-06-05 20:49:43

阅读数 413

评论数 0

知识总结 插件化学习 Activity加载分析

安卓插件化学习 插件Activity加载方式分析实现一套插件化项目很容易,但是投入生产环境,却很难。自己以学习为目的,主要分析其实现原理。在工作和学习过程中虽然用到或了解到多家安卓插件化实现方式及原理,自己并没有动手实现或参与公司插件化的研发,so业余时间从基础做起,总

2017-05-19 18:26:28

阅读数 530

评论数 0

知识总结之 插件化基础 java反射与代理

Java平台的反射机制是代码动态加载和调用的基本途径,在安卓系统源码中也用到了大量的反射动态加载类。反射也是安卓平台插件化实现的必要掌握的基础知识。代理是客户端灵活操作对象,间接的低耦合度操作对象的有效途径,也是插件化必要掌握知识。安卓插件化基础 java反射与代理一、反射java中反射机理比较常...

2017-05-11 17:09:59

阅读数 632

评论数 0

知识总结之 插件化基础ClassLoader

安卓插件化技术已经作为一个优秀的合格研发必备要求,学习和掌握现有不同种类动态加载方案 是提升个人技术深度有效途径。插件化基础 ClassLoaderClassLoader是什么?ClassLoader 是将java编译后的字节码加载到虚拟机内存中的用到工具类。Android平台虚拟机Dalvik/...

2017-05-05 18:25:41

阅读数 383

评论数 0

知识总结之 工厂模式

设计模式类的书及资料,看过很多遍,学习和理解容易,灵活应用就难了。只用多总结,多看别人代码,多多积累编码经验,才可以循序渐进,慢慢学会如何实战应用。设计模式-工厂模式定义简单工厂模式(静态工厂):定义一个创建对象的接口,在公共的接口方法中,通过不同的参数来创建目标对象。(里氏替换)工厂方法模式:定...

2017-05-02 20:41:25

阅读数 592

评论数 0

知识总结之 JobQueue 源码解析

知识总结之 JobQueue 源码解析本文主要分析及调研开源项目android-priority-jobqueue的基本原理及知识点,目的为更加深入的了解安卓平台后台 任务处理,及多线程调度的理解。Android Priority Job Queue一、JobQueue是什么? Priori...

2017-05-02 15:22:11

阅读数 686

评论数 0

知识总结之 AsyncTask 源码解析

知识总结之 AsyncTask 源码解析虽然这个类没什么特别地方,也是很常用的类,前段时间面试发现很多公司还是很喜欢问到这个类的原理,及使用场景,so,这里做下总结。一、 一句话概括「AsyncTask = ThreadPool + Handler;」AsyncTasks是android提供的轻量...

2017-04-28 19:01:30

阅读数 461

评论数 0

Gradle基本认识及理解

Gradle基本认识及理解 Gradle是什么?gradle首先可以理解为一个项目构建工具,或者理解深入点,是一种编程框架,安卓项目最流行

2016-12-09 17:09:49

阅读数 1157

评论数 0

git log展示过滤技巧

git log命令展示过滤技巧1. git log -n 展示前n条数据 2.git log –stat 展示简要的每次提交行数的变化,及其他基本信息。 3.git log -p 展示每次提交详细的代码变化 4.git log –pretty=oneline 用一行展示每次提交的c...

2016-11-08 11:07:20

阅读数 6246

评论数 2

辅助功能 之 小米手机悬浮窗权限

辅助功能 之 小米手机悬浮窗权限最近做项目遇到小米手机比较人(zhuang)性(bi)化的悬浮窗权限,当在小米手机上安装完应用后默认是关闭这个权限的,需要用户手动到应用详情页打开该权限。重(keng)要(die)的是使用这个权限开关系统window后, 小米手机不给任何提示就是不给弹窗。一开始以为...

2016-06-02 19:30:40

阅读数 13268

评论数 2

Node 升级工具n 大坑

npm install -g n 造成的大坑 dyld: Symbol not found: Referenced from: /usr/local/bin/node Expected in: /usr/lib/libstdc++.6.dylib Trace 本文环...

2016-04-08 11:01:48

阅读数 12492

评论数 1

Android Theme-安卓样式换肤实践方案

所谓的主题切换,就是能够根据不同的设定,呈现不同风格的界面给用户,也就是所谓的换肤。 本文主要总结了目前作者所知的两种实现方案.概述一直以来,认为App换肤是件很酷的东西,不同用户可以自己打造喜欢的颜色,类似墨迹,QQ,或是软件夜间模式,给用户很酷的体验.在写这个换肤实践方案之前,我也参考了其他人...

2016-03-31 18:05:48

阅读数 2349

评论数 0

视频转gif图片格式-好用的软件

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开...

2016-03-30 19:52:46

阅读数 1579

评论数 0

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