自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (15)
  • 收藏
  • 关注

原创 设计模式-适配器模式

这个时候,你需要的不是重写手机,而是一个“变压器”——它的职责是:一头接 220V,一头输出 5V,让双方都不用改变自己,就能愉快协作。写软件的时候,你一定遇到过这种尴尬场景:你这边已经有一套很成熟、很稳定的接口,很多业务都在用,可是突然接入了一个“外部系统”或者“老代码模块”,它的接口风格完全不一样,但功能本质上又差不多。当你发现“功能差不多,但接口风格完全对不上”时,不要急着改两边,更不要在业务代码里到处塞转换逻辑——先想想能不能在中间加一个适配器,让双方各自保持原样,只通过一个“翻译官”来对话。

2026-03-25 10:12:51 356

原创 设计模式-建造者模式

你盯着这一堆参数,心里只有一个想法:**看得头皮发麻**。当你创建某个对象时,发现构造函数参数已经长到看不清头尾,或者构造步骤需要严格控制顺序、并带有复杂约束时,就该考虑用建造者模式,把“怎么一步步创建”抽离出来,让调用方用一种自然、可读的方式去搭建这个复杂对象。2. **建造者模式**:你走进一个“定制电脑”店,说“我要一个游戏本”,店员会跟你聊 CPU、内存、硬盘、显卡,一步步帮你选配,最后再组装成一台电脑。也就是说,**你在思维上是“分步骤”构建这个对象的,而不是一次性把所有参数砸进去**。

2026-03-25 10:08:26 354

原创 设计模式-观察者模式

比如“消息未读数”从 9 变成 10,要更新标题栏的小红点、底部 Tab 的角标、通知栏里的提醒,甚至还要把这个变化写一条日志。继续在这个方法里加?3. 容易出现循环依赖:如果设计不当,观察者更新过程中又去修改被观察者状态,可能导致“通知 → 更新 → 再通知”的循环。当你在系统里发现:“一个对象状态一改变,就要手动去改很多地方”的时候,就该考虑用观察者模式,让这些地方自己来“订阅”变化。某些系统里,数据库数据变化之后,需要通知本地缓存、分布式缓存、多级缓存去更新,这也是典型的“一个变,多处跟着变”。

2026-03-25 09:47:57 478

原创 设计模式-工厂模式

当你发现 new 出来的不是‘普通小物件’,而是以后极有可能不断扩展、更换实现的‘关键角色’时,就别急着直接 new 了,给它配一个工厂,长远来看你会省下很多麻烦。这就是**工厂方法模式**的典型做法:**把“创建具体产品对象”的职责延迟到子类中去实现**,这样新增产品时,只需要新增一个工厂实现,而不用去修改已有工厂逻辑。leader 给你的建议是:**当“创建对象”这件事本身变复杂、或者产品族不断扩展时,就可以考虑引入工厂模式,把“怎么创建”抽离出来管理。工厂方法使一个类的实例化延迟到其子类。

2026-03-25 09:43:48 389

原创 设计模式-抽象工厂模式

比如界面皮肤的一整套控件(按钮、输入框、列表),要么全是“亮色风格”,要么全是“暗色风格”,不能按钮是亮色、输入框却是暗色,否则风格就乱套了。你头一次听说抽象工厂这个名字,于是先在心里给它一个简单定义:抽象工厂,就是用来生产“同一产品族的一整套对象”的工厂,它对外只暴露一个统一的创建接口,让你在不指定具体类的前提下,成套地获取同一系列的具体产品。这样一来,你就有了两个“工厂族”的具体实现:亮色皮肤工厂和暗色皮肤工厂,它们都遵循同一个 SkinFactory 接口,但各自生产的都是自己系列的产品。

2026-03-25 09:37:16 427

原创 Android 面试知识点

一、fragment 生命周期onAttach()->onCreate()->onCreateView()->onActivityCreated()->onStart()->onResume()->onPause()->onStop()->onDestoryView()->onDestory()-onDetach()二、ArrayList比LinkedList区别它们一个是Array(动态数组)的数据结构,一个...

2021-08-19 11:50:01 449

原创 flutter 与原生交互流程 ,flutter路由跳转

本文主要内容是一、flutter 与原生交互 主要记录,如何原生数据传递给flutter ,flutter数据传给原生app。二、flutter路由跳转 flutter 页面跳转一、flutter 与原生交互第一步、Android studio 创建app ,项目名为TestFlutterEngine创建flutter_moduel,在TestFlutterEngine文件上选择file->new flutter project,名称为test_...

2021-08-06 17:34:53 1874

原创 python 网络请求

python 网络请求相比Android 网络请求要简单1,你可以定义一个自己的请求头,也可以不写。 如:http_headers = {'Accept': 'application/json', 'Connection': 'keep-alive', 'User-Agent': 'PCHM10,PCHM10,OPPO,Android 10,WIFI'}由于,我们公司请求User-Agent必须是手机,否则就会重定向到其它域名,所有,我写死了我的手机型号

2021-08-05 17:20:36 1359

原创 记一次Retrofit网络请求过程

网络请求每天都在用。记一次简单网络请求过程。第一步:创建retrofit OkHttpClient mOkHttpClient = new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) .readTimeout(10, TimeUnit.SECONDS) .writeTimeout(30, TimeUnit.SECONDS)

2021-08-04 11:36:46 261

原创 Android python打渠道包

前言:目前,Android 打渠道包 大多采用的友盟渠道参考链接:https://www.cnblogs.com/sunjiachen/p/11457630.html第一步:在AndroidManifest中添加<meta-dataandroid:name="UMENG_CHANNEL"android:value="${channel}"/>第二步:在build.gradle中添加,baidu {}为指定渠道名称简写build {...

2021-08-04 11:03:43 423

原创 android studio git 操作 简单描述

一、master 分支合并到 测试分支操作当前是_test分支,需要合并master 分支 ,选择master 分支 点击 Rebase Current onto Selected 如下图 就可以合并master了 二、切换/回退 到某一分支 有时候我们需要把代码回退到某一分支上,回退到上一次commit位置,你需要找到上次commit位置,执行Reset Current Branch to Here, 如下图会有四种模式 soft,mixed,hard...

2021-08-04 10:23:18 504

原创 android 第三方资料申请相关

首先:获取Android md5、SHA1值方法debug: keytool -list -v -keystore c:\users\Administrator\.android\debug.keystore秘钥库口令:androidrelease: keytool -list -v -keystore (秘钥地址).jks秘钥库口令:你的jks密码一、微信开发平台平台入口:https://open.weixin.qq.com/cgi-bin/index?t=home/index..

2021-08-04 10:16:55 242

原创 Android Library上传到JCenter仓库

背景:我本地有一基础library库,每次创建项目选择依赖该库,一次,发现改库中有一处地方需要修改,这时候你发现之前该library的项目又得删除然后导入修改后的library。过程会超级麻烦,要是能够像其他第三库一样,通过 implementation XXX ,就简便很多。概念普及JCenter是什么?jcenter是一个由bintray.com维护的Maven仓库。一般我们会...

2019-03-14 16:01:20 347

原创 开发遇坑记录

记录一下开发时遇到的坑与陷阱一:静态变量引发背景:今天运营人员报来app一个bug,打印时设备信息为null,额,一头雾水,半年时间没出过问题,仔细检查,发现,是这货惹得我在登录成功把设备信息通过静态方法传到要用的utils类,这里提前知道一个知识,静态变量修饰的方法与变量跟应用有相同的生命周期,所以就这样用了。现在device信息却为null。查找资料发现,应用放在后...

2019-03-05 11:24:39 286

原创 设计模式

简单的介绍Android的一些设计模式。一.单例模式单例模式一般有“饿汉式”和"懒汉式"。单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。1.常用的饿汉式写法(不推荐使用)public class Singleton { private final static Singleton INSTANCE = new Singleton();...

2019-03-05 10:56:09 159

翻译 android 面试

1、Activity生命周期?onCreate() -&gt; onStart() -&gt; onResume() -&gt; onPause() -&gt; onStop() -&gt; onDetroy()  2、Service生命周期?service 启动方式有两种,一种是通过startService()方式进行启动,另一种是通过bindService()方式进行启动。...

2019-02-21 10:35:39 237

原创 greendao 3.0版本踩坑

最近公司项目需要使用greendao存储本地数据库遇到了一些问题记录一下,主要是一对多表关联查不出子表数据问题。greendao使用相信大家网上一搜大量教你试用文章所以前面就不记录了。贴几个标签@Id 标明主键@NotNull 非空@Unique 添加唯一约束    (一般外键关联字表使用)@JoinProperty 对于更复杂的关系,可以使用这个注解标明目标属性的源属性...

2018-11-01 17:18:41 638

转载 android 屏幕适配

Android屏幕适配px与dp适配的原理 px适配原理: 根据设备屏幕的分辨率各自写一套dimens.xml文件,然后根据一个基准分辨率(例如720x1080),将宽度分成720份,取值为1px——720px,将高度分成1080份,取值为1px——1080px。生成各自dimens.xml文件对应的值。 dp适配原理: dp适配原理与px适配一样,区别就在于px适配是根据...

2018-08-21 10:01:50 313

原创 js复制文字

1.js复制&lt;textarea&gt;标签文字&lt;textarea cols="40" rows="5" id="textareaValue"&gt;我是textarea标签&lt;/textarea&gt; &lt;/br&gt;function copyTextareaValue() { var textareaValue = document.getElemen

2018-06-21 15:40:43 381

原创 Android 面试常见知识点

1.Android 多进程通信 参考链接:https://www.jianshu.com/p/ce1e35c84134 NO1. 定义: 如果一个进程占用内存超过了这个内存限制,就会报OOM的问题,很多涉及到大图片的频繁操作或者需要读取一大段数据在内存中使用时,很容易报OOM的问题。为了彻底地解决应用内存的问题,Android引入了多进程的概念,它允许在同一个应用内,为了分担主...

2018-04-03 15:07:12 424

原创 自定义View

1.重写三个方法 onMeasure() ,onlayout() ,onTouchEvent()onMeasure: 对子view进行测量onlayout:用来确定子view的位置onTouchEvent:触摸响应事件

2018-02-07 18:08:48 162

原创 Dagger2

由于想实现MVP框架,看到dagger2使得参数获取变得如此简单,进而下手。参考链接:http://www.jianshu.com/p/cd2c1c9f68d4 或 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0519/2892.html 首先得搞清楚 Inject,Component,Module,Provides它们

2018-02-01 15:11:32 249

转载 ButtonKnife

参考链接:http://bxbxbai.github.io/2016/03/12/how-butterknife-works/?utm_source=tuicool&utm_medium=referral使用注解好处:使得代码简洁,省去了写无聊的findviewbyId(),setOnClickListener()等代码传统的注解都是通过反射获取Activity中所有的带有@Bind注解的属性并且获

2017-04-11 18:41:41 1055

原创 android面试总结

1.java与javac的区别 Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。 javac工具读由java语言编写的类和接口的定义,并将它们编译成字节代码的class文件。 javac简单来说可以看做是java语言的编辑器,作用是将.java文件编译成.class文件

2017-04-11 18:32:30 290

原创 Rxjava简单理解

一:参考文章:http://gank.io/post/560e15be2dca930e00da1083 二:Rxjava定义(Github):一个在java VM上使用可观测的序列来组成异步的基于事件的程序的库。 三:Rxjava原理:观察者模式:创建Observer(观察者),创建Observable(被观察者),订阅(Subscribe)。 四:优点:代码简洁明了,可扩展性强。 使用举列

2017-04-11 18:01:36 453

原创 android项目知识点总结-(个人习惯 供自己以后参考 请勿评论)

1.获取验证码:TimeButton 类 2.分享:友盟分享 3.推送:极光推送 4.地图:百度地图, 高德地图 5.聊天:融云,环信6.首页显示多碎片布局 home = getSupportFragmentManager().findFragmentByTag(“home”); FragmentTransaction transaction = getSupportFragmentM

2017-03-15 12:05:48 389

原创 android相册拍照保存图片到本地

功能:选择相册或者拍照图片保存到本地,下次打开程序直接显示,图片可裁剪。 一。新建布局:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/

2017-02-15 10:16:45 2878 1

转载 android沉浸式状态栏

[快速搞定]android 状态栏一体化 沉浸式状态栏一、前言最近负责的几个项目都被要求将系统状态栏的颜色设置与app主题色一致,网上找到许多资料都没有一下解决我的问题,最终结合几个解决方案总结出一个最简单、最快的状态栏一体化方案,只要三步你的app就将有更好的用户体验了。 注意:由于Google只在Android4.4之后可以修改状态栏颜色,所以本方案只有在4.4以上才有效果(PS:国内大部分

2017-02-06 10:22:16 318

原创 android广播简单使用

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-11-16 16:15:26 414

原创 sqlite的使用

sqlite简单操作

2016-11-16 13:30:19 305

原创 根据经纬度定位百度地图(带图片的)

根据经纬度定位百度地图(带图片的)

2016-11-09 11:32:49 4849 1

转载 快速集成极光推送

转载 http://blog.youkuaiyun.com/qq137722697/article/details/52475605

2016-10-08 15:01:33 407

原创 android自定义显示年月日,显示年月日时分秒

android自定义显示年月日

2016-10-08 09:25:57 1433

原创 项目中集成融云即时通讯

集成容云即时聊天。单聊部分。离线也能收消息。

2016-09-28 13:59:07 1636

原创 友盟实现分享

友盟分享

2016-09-27 14:15:11 381 1

原创 百度地位获取详细地址

百度地址定位详细地址,无界面只有地址。

2016-09-27 09:50:56 1665

原创 高德地图定位

高德定位获取详细地址(无界面,纯地址)

2016-09-27 09:25:55 1297

快速实现极光推送软件

快速实现极光推送软件

2016-10-08

AppDictApi.py

python 网络请求

2021-08-05

createChannelPackage.py

android 多渠道包 python脚本

2021-08-04

channelnames.csv

渠道包名称

2021-08-04

百度地图定位(带图片)

百度地图定位(带图片)

2016-11-09

百度地图定位详细地址sdk

百度地图定位详细地址sdk

2016-09-27

Android默认dimens

Android dimens大全包括常用的dp,常用的sp,如有需要其它的可自行自己添加

2018-08-21

android自定义年月日,自定义年月日时分

android自定义年月日,自定义年月日时分

2016-10-08

js复制文本

html 实现js复制文本,包括textarea标签,input标签,span标签的复制

2018-06-21

Genymotion安装有jni项目失败

Genymotion安装有jni项目失败,直接拉进该压缩包到模拟器中便可以安装APK了

2016-10-28

高德获取详细地址sdk

高德获取详细地址sdk

2016-09-27

融云 IMKit sdk

融云 IMKit sdk

2016-09-28

android沉浸式状态栏工具类

android沉浸式状态栏工具类

2017-02-06

BaseRecyclerViewAdapter

很好用的多功能基础RecyclerView

2017-03-15

listview下拉刷新

listview展示,有下拉刷新功能,listview进行了优化,应该比较常用到。

2015-07-15

空空如也

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

TA关注的人

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