- 博客(96)
- 资源 (27)
- 问答 (3)
- 收藏
- 关注

原创 Android Kotlin 开发--偶遇Rxjava、Retrofit进行网络请求
概述上篇写了Kotlin在Android中的使用初体验小Demo,对Kotlin还不知道如何下手的小伙伴可以去看看,请收下我的膝盖(抱拳)Android Kotlin 开发–初体验Demo,大神请绕道……本篇能学到什么Kotlin配合Rxjava+Retrofit+缓存策略进行网络请求Kotlin Retrofit简单封装Kotlin使用单例模式开始Kotlin配合Rxjava+Retrof
2017-05-30 18:01:03
11486
2

原创 Android Kotlin 开发--初体验Demo
使用Kotlin开发Android的小Demo,一个RecyclerView的显示实现效果很简单,代码相信大家都能看懂,主要就是Kotlin的Adapter、ViewHolder的写法,跟原生Android写法的确简洁不少……
2017-05-22 16:39:29
5489

原创 Android Kotlin初体验
概述最近已被Kotlin刷屏,那么kotlin到底是什么呢?Kotlin是一个基于JVM静态类型编程语言。它的主要优点目前我觉得有三点:简洁、简洁、简洁!让你用更少的代码获得更多的功能。Kotlin支持类型推断用var表示变量,val表示常量方法直接就fun类的继承和实现更加简单化,使用:就哦了Kotlin不再让你再去写无聊的分号了etc ……使用Android studio中的使用方
2017-05-22 09:48:11
1594
1

原创 微信验证服务器地址有效性
微信验证服务器地址有效性概述:我们知道申请公众号测试账号后首先会进行“微信验证服务器地址有效性”的操作,否则会无法正常使用的,那么该如何处理呢,这里就简单把代码贴出来,供大家参考指正,同时我也写了关于微信支付的相关博客,大家也可以参考参考,微信支付-签名篇。微信开发者文档中心-验证服务器说明 (注:图片来源于微信公众号开放平台)代码部分签名工具类public class SignUtil {
2017-04-14 17:16:57
1926

原创 RecyclerView 展示同日期下的数据信息
RecyclerView 展示同日期下的数据信息概述:最近有一个业务需求,ListView根据日期进行展示,但是ListView还是没有RecyclerView好用,好处我就不再详述了,没用过的可以百度一下,很简单,很方便!效果:主要代码:GroupItemHolder.javapublic class GroupItemHolder extends NormalItemHolder { pu
2016-09-30 16:59:31
5675
1

原创 微信支付--签名篇
微信支付, 是基于微信客户端提供的支付服务功能。 同时向商户提供销售经营分析、 账户和资金管理的功能支持。 用户通过扫描二维码、 反扫二维码等多种方式调起微信支付模块完成支付。原始签名字符串无论是请求还是应答, 签名原始串按以下方式组装成字符串: 1、 除 sign 字段外, 所有参数按照字段名的 ascii 码从小到大排序后使用 QueryString 的格式(
2016-07-12 09:41:45
7722
原创 Flutter-状态管理-provider-ChangeNotifierProvider的用法
Flutter provider状态管理-ChangeNotifierProcider的用法
2022-04-05 10:00:00
2298
原创 Hilt的使用
添加依赖配置首先,将 hilt-android-gradle-plugin 插件添加到项目的根级 build.gradle文件中:buildscript { ... dependencies { ... classpath 'com.google.dagger:hilt-android-gradle-plugin:2.28-alpha' }}然后,应用 Gradle 插件并在 app/build.gradle 文件中添加以下依赖项:...
2021-07-11 00:40:41
1203
1
原创 Dagger2入门到放弃
如果有可能,请通过 @Inject 进行构造函数注入,以向 Dagger 图中添加类型。如果没有可能,请执行以下操作:使用 @Binds 告知 Dagger 接口应采用哪种实现。使用 @Provides 告知 Dagger 如何提供您的项目所不具备的类。您只能在组件中声明一次模块。根据注释的使用生命周期,为作用域注释命名。示例包括 @ApplicationScope、@LoggedUserScope 和 @ActivityScope。
2021-07-10 12:52:01
236
原创 App Bundle构建可动态化下载模块的App
Android App Bundle 是一种发布格式,其中包含您应用的所有经过编译的代码和资源,它会将 APK 生成及签名交由 Google Play 来完成。Google Play 会使用您的 App Bundle 针对每种设备配置生成并提供经过优化的 APK,因此只会下载特定设备所需的代码和资源来运行您的应用。您不必再构建、签署和管理多个 APK 来优化对不同设备的支持,而用户也可以获得更小且更优化的下载文件包。对于大多数应用项目而言,构建 App Bundle 以支持提供经过优化的 APK 并
2021-07-07 10:25:46
1483
原创 Android-aab格式 App Bundle初体验
android包在googlePlay 一种新的上传分发格式,以前是apk,现在可以传.aab通过使用App Bundle可以有效的减少应用包的大小,提升安装成功率并减少卸载量。它是不能直接安装的,我们可以借助googlePlay完成下载安装,也可以使用BundleTool工具生成符合用户设备的apk并且部署到设备上。
2021-07-06 20:56:09
2388
1
原创 Android-如何避免以及定位内存泄漏?
目录非静态内部类的静态实例Handler使用不当导致内存泄露Context使用不当导致内存泄露资源对象未关闭(输入输出流、Cursor等)静态View导致泄露WebViewBitmap监听器未关闭非静态内部类的静态实例非静态内部类会持有外部类的引用,如果非静态内部类的实例也是静态的,就会长期持有外部类的引用,无法被系统回收,解决办法:使用静态内部类Handler使用不当导致内存泄露Handler导致的内存泄露基本上也是由于非静态内部类导致的,Handler内部message是被存储在MessageQ
2020-07-15 10:42:28
382
原创 Android-Service里面如何启动Activity?为什么要这么做?
目录1. 一个应用中有多少个Context,它们之间的区别是什么?2. Service/广播中是否可以启动Activity?为什么?1. 一个应用中有多少个Context,它们之间的区别是什么?Context数量=Activity数量+Service数量+Application从图中我们知道:Context其实是一个抽象类,它有两个子类:ContextImpl、ContextWrapper,ContextImpl是context的功能具体实现类,而ContextWrapper则是一个包装类,主要
2020-07-15 10:38:07
7183
原创 2020-Android-面试总结(1)
目录Java部分1. [数组与链表](https://blog.youkuaiyun.com/wu996489865/article/details/107325094)2. 设计模式1. [单例模式](https://blog.youkuaiyun.com/wu996489865/article/details/107325511)2. 建造者模式(Builder)3. 适配器模式4. 装饰模式5. 策略模式6. 观察者模式7. 状态模式8. 工厂(方法)模式3. sleep、wait、join区别4. 多线程同步、synchr
2020-07-14 18:09:55
319
原创 Java-反射、注解、注解处理器
目录1. 反射1. 对象获取的方法2. 常用API2. 注解3. 注解处理器1. 反射Java反射机制是在运行状态中对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,能够调用它的任意方法和属性,从对象出发,通过反射(Class类)可以取得类的完整信息。简单说就是在运行过程中获得类、对象、方法的所有信息1. 对象获取的方法通过对象获取obj.getClass()通过完整类路径获取Class.fromName("com.java.String")通过类名获取Object.clas
2020-07-14 17:08:39
293
原创 sleep、wait、join区别
目录线程的生命周期sleep、wait、join区别1. Thread.sleep()2. Object.wait()3. Thread.join()线程的生命周期线程状态含义说明NEW新建还未调用start方法,还是活着的aliveRUNNABLE准备就绪调用了start方法,此时线程已经准备好,处于就绪队队列中,aliveRUNING运行中线程获得CPU资源,正在执行alive(其实不是真实存在这个状态)BLOCKED阻塞线程阻塞与锁或者调用了
2020-07-14 11:53:16
1431
原创 java-设计模式-单例模式
目录1. 六大设计原则2. 什么是单例模式?3. 单例模式的特点?4. 单例模式VS静态类5. 单例模式的几种实现方式1. 懒汉式2. 饿汉式3. DCL(double-check-locking)双检锁6. DCL原理7. 多进程中单例为什么会失效?1. 六大设计原则一句话总结个原则特点单一职责原则 :一个类只负责一项职责里式替换原则:所有应用父类的地方都能够使用子类替代,子类可进行功能扩展而不是重写、覆盖父类方法依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖抽象,抽象不应该依赖细节
2020-07-13 22:19:31
140
原创 Java-数组与链表
目录1. 链表与数组的主要区别2. 数组的特点3. 链表的特点4. 各自优缺点数组优点缺点链表优点缺点1. 链表与数组的主要区别数组的元素是固定的而链表的结点个数会自动扩展数组元素的存储单元是定义时分配的,链表结点存储单元在执行时可动态扩展数组中元素的顺序关系由元素在数组的下标决定的,链表结点顺序关系由结点的指针决定的2. 数组的特点在内存中数组是一块连续的区域数组需要预留控件,在使用时就必须申请内存,申请过大会造成内存浪费插入和删除效率低,插入数据时后面的数据都要向后面移动,因为数组
2020-07-13 21:14:08
374
原创 Android-自定义Factory2打造动态换肤(一)
目录需求分析流程方案-自定义Factory2(通过阅读源码得知)创建View的过程代码-实战部分需求分析实现APP换肤的功能,要求:为避免增加apk体积不预先内置资源包仅仅有一个默认的,因此需要实现动态换肤换肤功能必须实时生效无需用户重启app无闪烁换肤字体、状态栏、自定义View、系统View 换肤Activity、Fragment换肤流程方案-自定义Factory2(通过阅读源码得知)我们可以参考系统创建view的流程,在创建的过程中我们是否可以偷梁换柱呢?首先我们通过set
2020-05-16 17:59:31
2113
原创 使用Django上传下载文件
文件上传准备工作先下载Pillow,用作图片有效性的验证工作pip install Pillowsettings.py配置路径MEDIA_ROOT = os.path.join(BASE_DIR, 'media')MEDIA_URL = '/media/'modelsclass Personal(models.Model): user_name = mod...
2020-01-02 18:25:19
556
1
原创 Android 任务栈与启动模式
任务栈android任务栈又称为task,它是一个栈结构,具有先进后出的特性,用于存放我们的Activity组件只有在栈顶的Activity才能与用户进行交互我们退出程序时只有把任务栈中所有的Activity移除栈,任务栈才会被销毁,任务栈也可以移动到前台,并且保留了每一个Activity的状态,可以有序的给用户列出他们的任务,同时也不会丢失Activity的状态信息一个App中可能不止...
2019-12-28 13:41:18
416
1
原创 Android事件分发机制--浅显易懂解析
Android事件分发机制的本质将点击事件向某个View进行传递并且最终得到处理,即当一个点击事件发生后,系统需要将这个事件传递给一个具体的View处理,这个事件的传递过程就是事件分发过程事件在那些对象传递Activity、ViewGroup、View分发流程:Activity(Window)-> ViewGroup -> Viewsuper:调用父类方法true:处理事件,事件...
2019-12-22 12:31:17
231
原创 Android自定义View--时钟效果
初衷工作四年了,能力水平并没有跟工作年限挂上钩,至今依旧是一个搞开发的小僧。由于公司是做物联网(车载、POS)的,项目UI并不像互联网公司那样花里胡哨的,所以自定义View一直在项目中体现的并不是很多,但是自定义View是一个Android工程师必备的一项基础技能,所以平常也会自己进行一些简单的练习。突发奇想做了一个时钟,感觉挺好玩的,网上也有很多这样的博客,这里也只是做一个小小的分享,能力不足...
2019-12-14 17:10:28
1728
原创 Django - models的基础用法
概述Python 模型是与数据库相关联的,每个属性都是数据库的表字段。既然是数据库相关的那必然存在一些属性,本篇博客就是介绍其基础属性以及用法。简单使用一般models都是在app下models.py中进行编写的,当然也可以新建自己的目录包进行创建:from django.db import modelsclass User(models.Model): name = mode...
2019-07-16 14:09:52
664
原创 Python--Flask 开发Android API接口
1. Flask介绍Flask是一个使用 Python 编写的轻量级 Web 应用框架,使用简单操作方便,很适合开发轻量级的API接口,让Android程序员从此不再去问后台要测试接口了。2. 简单使用1.安装pip3 install Falsk2.使用from flask import Flask#初始化app = Flask(__name__)#路由@app.route...
2019-06-24 22:37:45
2846
原创 Python-线程、线程池
1. Python多线程python3中常用的线程模块为:_thread(Python2中的thread)、threading(推荐)线程池:ThreadPoolExecutor2. 使用线程第一种方式:_thread.start_new_thread(function,args[,kwargs])function:线程函数args:传递给线程函数的参数,必须是tuple(元组)类型...
2019-06-24 22:36:40
4293
原创 Python--数据库sqlalchemy
1.什么是sqlalchemy?sqlalchemy是Python ORM的开源框架,使用它可以快速方便的构建数据库模型2.如何使用sqlalchemy?1.安装pip3 install sqlalchemy2.导包from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarativ...
2019-06-24 22:34:01
390
Android端TTS语音引擎
2020-01-02
Launcher5.0源码
2016-12-29
Notification
2016-07-14
Gson jar包
2016-07-12
Android design jar包
2015-12-26
mysql jar包
2015-12-24
sql JDBC jar包
2015-12-24
ibeacon报警demo
2015-12-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人