Android
文章平均质量分 63
安妍妍
Go Big Or Go Home.
展开
-
java和kotlin实现单例模式
定义及使用场景定义:确保某个类只有一个实例,而且自行实例化提供给外部使用。使用场景:某个类型的对象实例应该有且只有一个,或者避免创建多个对象实例消耗过多的资源时。如:网络库,访问IO,数据库时要考虑单例模式。单例模式的实现方式1.饿汉式优点:简单,线程安全缺点:在类加载的时候就创建,不管需不需要都会创建,不能传参适用场景:单例的创建开销小java:public class HungrySingleton { //在类加载的时候创建单例 private static Hung原创 2020-08-24 10:13:49 · 529 阅读 · 0 评论 -
Android序列化
概念序列化:将数据结构或者对象转换成二进制数据的过程;反序列化:将二进制数据转换成数据结构或者对象的过程。应用场景1.网络传输2.进程间通讯(进程间传递数据)3.intent传输数据序列化方案Serializable空接口,起到标识作用,最简单的序列化方式serialVersionUID:控制版本,什么场景加?什么场景不加?readResolve等四个方法:单例序列化?@Transient:忽略字段静态变量不会被序列化,因为我们序列化的是对象实例吗,而静态变量是属于类的。序列原创 2020-08-11 16:07:17 · 229 阅读 · 0 评论 -
RxJava简单理解
响应式(流水线)核心思想引入简单使用防抖网络嵌套(串行&并行)原创 2020-07-28 10:31:56 · 306 阅读 · 0 评论 -
EventBus3.x的正确打开方式
EventBus的基本使用我就不介绍了,可以看GitHub地址。EventBus内部默认使用的是运行时反射,反射当然是影响性能的。为此EventBus3.0做出了优化,但是只升级EventBus版本并没有用到优化策略,需要我们加些代码才行。1.在gradle文件添加如下:android { defaultConfig { javaCompileOptions { annotationProcessorOptions { a原创 2020-06-26 13:03:59 · 248 阅读 · 0 评论 -
Glide图片加载方案
Glide原创 2020-06-13 13:49:23 · 1525 阅读 · 1 评论 -
解决华为手机无法输出Debug级别log的问题
近期购入了新款的华为手机荣耀8,手感、性能、颜值都非常好。作为android开发工程师,自然会用到真机进行日常的调试。然而,这部手机并没有这么“听话“!反复尝试开启开发者选项中的设置项,依旧无法输出Log.d(), Log.v()等的日志信息!在华为手机的论坛里面找到篇帖子,说的是需要在“工程模式“里面开启ap的log。进入工程模式启动...原创 2018-02-09 16:14:20 · 1565 阅读 · 0 评论 -
进程间通信学习系列(一)——IPC简介
最近得空,打算学习研究一下进程间通信,主要参考任玉刚大神的《Android开发艺术探索》一书,并查阅相关博客。将自己的学习总结记录下来,方便自己,帮助他人。如有错误,还请指正。一、什么是IPC机制IPC : Inner-Process Communication,进程间的通信。IPC机制不是Android独有的,任何一个操作系统都有其对应的IPC机制。虽然Android是基于Linux内核原创 2018-01-16 21:05:19 · 340 阅读 · 0 评论 -
进程间通信学习系列(二)——简单了解Binder机制
进程间通信学习系列(一)——IPC简介Binder机制太复杂了,本文只是简单的对Binder进行了解。在Android中Binder是一个类,实现了IBinder接口,在Binder机制中还有两个重要角色Binder驱动(在内核中)和ServiceManager,这两部分Android平台已经实现,我们不必关心,当然有兴趣的童鞋可以研究下。本文主要学习了解应用层的Client和Se原创 2018-01-17 13:15:30 · 365 阅读 · 0 评论 -
Fragment的commit方法和commitAllowingStateLoss方法的区别
问题情境之前使用fragment的时候出现了一个bug,程序直接crash掉,抛出"can not perform this action after onSaveInstanceState" 异常,原来是FragmentTransaction的commit方法抛出的,最后将commit方法改为commitAllowingStateLoss方法,解决了问题。那么这两个方法有什么区别呢?查看原创 2016-11-22 22:05:52 · 5542 阅读 · 1 评论 -
Android Studio配置打包生成自定义文件名
Android Studio打包生成自定义名称的apk文件转载 2018-01-31 16:22:33 · 1895 阅读 · 0 评论 -
网页启动Android APK
点击网页中的URL链接,打开手机中已经存在的Android应用。转载 2018-01-05 16:22:47 · 1649 阅读 · 0 评论 -
android ScrollView fillViewport属性
ScrollView的fillViewport属性转载 2018-01-12 09:53:17 · 500 阅读 · 0 评论 -
Android Studio手动配置Gradle的方法
AS手动配置Gradle版本,解决第一次打开巨慢问题转载 2017-12-07 10:28:50 · 297 阅读 · 0 评论 -
Handler机制-源码解析
Handler经常被用来实现线程间通信,使用也很简单,今天得空学习了Handler相关的源码,在此记录加深印象,同时也希望帮助到其他的小伙伴们。Handler的使用Handler的使用很简单,最常见的是在UI线程创建Handler对象,在其他子线程中调用handler.sendMessage()相关方法,从而实现线程间通信的目的。如下: private Handler handler原创 2018-01-29 14:28:03 · 396 阅读 · 0 评论 -
解决Android Studio配置完依赖等下载慢的问题
使用Android Studio在第一次导入项目或者配置完Kotlin后,会一直Build,因为需要下载一些项目中配置的依赖和gradle插件等,有的需要翻墙,由于国内的网络环境很容易超时。可以使用下面的方法解决的问题:使用阿里云的国内镜像仓库地址,就可以快速的下载需要的文件修改项目根目录下的文件buildscript { repositories { //加入...原创 2018-02-09 16:49:54 · 9572 阅读 · 4 评论 -
Android Studio生成keystore签名文件
用Android Studio生成签名文件原创 2016-12-06 21:42:28 · 37469 阅读 · 0 评论 -
AndroidStudio以debug模式启动app后找不到桌面图标了
AndroidStudio以debug模式启动app后找不到桌面图标了今天用AS启动了之前写的一个应用,退出应用后,竟然在桌面找不到启动图标了。这也太神奇了吧。我AS也没有升级,之前还是好好的,今天就有问题了。各种百度,网上说的方法都没能解决我的问题,一度怀疑我的手机出了问题。各种尝试后还是不行。最后我打了个realse包,安装后桌面图标出现了。现在确定不是代码的问题。将软件卸载后,重新de...原创 2019-04-09 16:29:54 · 3968 阅读 · 4 评论 -
Gradle配置方便快速切换生产和测试环境
实际开发项目时,肯定会遇到切换后台地址的情况。如果每次都去手动更改常量Url的值,虽然不是很麻烦,但是会烦有木有。实际开发项目时,肯定会遇到切换后台地址的情况。最简单的分为测试环境和生产环境,复杂一点的会有内网环境,外网环境,内网测试,外网测试,外网生产…,头都大了有木有。每次都要去手动更改url地址(手抖还有可能改错,酿成大祸),最讨厌的时,他们总会拿着手机问我他们手机上安装的是哪个...原创 2018-08-03 16:20:01 · 2441 阅读 · 0 评论 -
Android无线调试
一直以来都是用数据线连接手机进行调试的,但是近日华为赞助我们的一个pad m5,尼玛只给了pad,没给充电线,而且这个pad是要tipec的那种充电线,说充电线好买,让我们自己买一个。作为一个抠逼的程序员怎么可能自掏腰包买一个充电线,还不如给我一刀。于是就了解了一下无线调试。ps:只需要用一次充电线,后面就不再需要了(除了充电,第一次是我借的同事的)1:数据线连接手机和电脑;2:命令行输入adb ...原创 2018-06-04 11:53:54 · 18570 阅读 · 14 评论 -
Android Studio查看完整日志
在调试项目的时候,结合日志信息可以快速的定位到问题。但是有时候,崩溃日志会被新的日志顶掉,一闪而过。这就比较尴尬了。这时我们可以将日志输出定位到文件中,就可以查看所有的日志文件了。再也不用担心崩溃日志被顶掉了。输入命令:adb logcat > F:\log.txt日志就会保存在F盘下的log.txt文件中,打开查看即可。想退出按ctrl+C即可。...原创 2018-05-15 15:49:56 · 13196 阅读 · 0 评论 -
Please select Android SDK
Android Studio 报错Please select Android SDK转载 2018-03-28 13:46:12 · 775 阅读 · 0 评论 -
Android Studio实现Serializable序列化,自动生成serialVersionUID
近日项目中一个类实现了Serializable接口,Rebuild Project就报了如下错误:Error:Execution failed for task ':app:greendao'.> Found 1 problem(s) parsing "E:\heshenghuo\HeShengHuo\app\src\main\java\com\hbmcc\heshenghuo\db\Msg...原创 2017-12-05 16:15:03 · 11112 阅读 · 0 评论 -
Android调试技巧之模拟内存不足
Android开发中经常会遇到内存问题,如果测试人员的测试机比较低端的话,常常会遇到下面比较尴尬又无奈的情景:开发人员开发完成了一个功能并自测没有问题,交给测试,过了一会测试反馈说点击崩溃等一系列问题。尼玛开发在自己的手机上测试完全没有问题啊,无法重现测试所说的bug,于是屁颠屁颠的找测试MM理论,你他妈给我重现一下,我的手机上是好的。然而测试MM就当着开发的面重现了Bug.打脸啊。这种问题一般在...原创 2018-02-28 10:05:51 · 7987 阅读 · 0 评论 -
Android ButterKnife的使用方法
ButterKnife使用注解方式得到控件和设置点击事件。不必再findViewById和setOnClickListener了。简化了代码,结构清晰。而且提供了快捷生成方式。方便开发。但是新手在使用ButterKnife时会遇到一些问题,接下来记录ButterKnife在Activity中的使用。一、配置(Android Gradle插件版本小于2.2)1.导入依赖(选中项目按F4键或者原创 2016-11-24 21:51:05 · 439 阅读 · 0 评论 -
Android Studio检测不到真机
解决Android Studio检测不到手机问题原创 2017-12-04 20:38:35 · 2345 阅读 · 1 评论 -
Android Studio 中 Gradle 依赖的统一管理
Android Studio 中 Gradle 依赖的统一管理转载 2017-11-01 15:16:00 · 748 阅读 · 0 评论 -
RecyclerView实现侧滑删除和拖拽排序
很好用的一个库:SwipeRecyclerView使用讲解:http://www.jianshu.com/p/3ea18300f40c托管代码:大家可以下载下来,里面有demoGithub:https://github.com/yanzhenjie/SwipeRecyclerView转载 2017-01-19 21:27:58 · 403 阅读 · 0 评论 -
RecyclerView的分割线
自定义RecyclerView分割线原创 2017-01-18 22:14:07 · 264 阅读 · 0 评论 -
Android沉浸式状态栏的简单实现
Android4.4之后开始支持透明状态栏,于是有了沉浸式状态栏之说。其实这种叫法是不正确的。参考郭林播客:Android状态栏微技巧,带你真正理解沉浸式模式。今天参考使用第三方库:SystemBatTint,实现沉浸式。我的理解沉浸式无外乎两种情况,一:纯颜色,二:北京图片延伸到状态栏。在app/build.gradle中添加依赖: compile 'com.readystate原创 2017-02-05 22:54:52 · 414 阅读 · 0 评论 -
Android弹出圆角对话框
Android弹出圆角对话框原创 2017-01-09 23:04:52 · 4103 阅读 · 1 评论 -
Android Studio导入.so文件的两种方法
Android Studio导入.so文件。原创 2017-02-05 11:35:42 · 2334 阅读 · 1 评论 -
Android App底部导航栏的另一种实现方式
Android 底部导航栏实现的另一种方式原创 2016-12-08 20:47:42 · 941 阅读 · 0 评论 -
Android倒计时的使用
App中经常会用到倒计时,Android本身提供了CountDownTimer类来方便开发者。先上效果图:import android.os.Bundle;import android.os.CountDownTimer;import android.support.v7原创 2016-12-07 20:25:03 · 477 阅读 · 0 评论 -
Android App应用底部导航栏实现的一种方式
Android App底部导航栏的一种实现方式原创 2016-12-05 21:38:52 · 1954 阅读 · 1 评论 -
Android Studio app/build.gradle使用
Android Studio中的各个字段含义原创 2016-11-22 22:10:58 · 766 阅读 · 0 评论 -
Android 自定义一种进度条
自定义进度条原创 2016-12-12 21:02:47 · 351 阅读 · 0 评论 -
Android Studio忽略文件配置
Android Studio首次提交代码到svn时,忽略文件配置原创 2016-11-21 22:37:50 · 1541 阅读 · 0 评论 -
Android Studio查看一个页面的布局层次结构
利用AS查看任意app的布局结构原创 2016-12-01 22:00:15 · 27976 阅读 · 2 评论 -
登录密码显示设置
EditText的密码显示与隐藏设置原创 2016-11-30 21:46:13 · 613 阅读 · 0 评论 -
Android自定义View模仿密码输入框
自定义密码输入view继承EditTextpackage com.anyan.www.ann;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Paint;import android.原创 2017-03-28 15:15:18 · 2124 阅读 · 3 评论