- 博客(118)
- 资源 (13)
- 问答 (3)
- 收藏
- 关注
原创 Flutter中数Json序列化
pubspec.yaml在pubspec.yaml中引入json序列化依赖Dart的依赖仓库:https://pub.dev/dependencies: # json序列化 json_annotation: ^3.0.1 dev_dependencies: # json序列化 build_runner: ^1.10.0 json_serializable: ^3.4.1json_annotation.dartimport 'package:json_annotation/j
2020-09-27 21:38:06
399
原创 Flutter开发环境配置
Windows下用Android Studio开发Flutter项目的环境配置//下载flutter SDKgit clone -b master https://github.com/flutter/flutter.git//配置环境变量,改为国内镜像FLUTTER_HOME:D:\FlutterSdkpath:%FlutterSdk%\binkey:PUB_HOSTED_URL value:https://pub.flutter-io.cnkey:FLUTTER_STORAGE
2020-09-18 18:55:17
960
原创 Android组件化——1,build.gradle
文章目录conf.gradleproject build.gradlemodule build.gradleAndroidManifest.xmlJava.classconf.gradle在项目根目录下新建conf.gradle文件,在其中写项目的通用配置ext{ packageType = 0 //马甲包配置;0,马甲包1;1,马甲包2;2,马甲包3 isMainType = 0;//默认主程序入口;1,马甲包1入口;模块模式true;发布模式false //通用配置
2020-09-07 15:13:20
607
转载 Android 进程保活
转载地址 参考资料:gitbub上的一个进程保活的库安卓进程保活解决方案Android进程保活招式大全双进程守护APP保活方案最近查看进程保活的各种资料,实现方式无非就那么几种,可以参考上面的资料链接,本篇博文对这些实现进行了分析和测试,并把从中体会到的知识点做个总结汇总,算是加深相关知识的理解。本篇博文以github的一个库为例,来逐步讲解说明该库总的来说就是整合了:一像素Act...
2019-11-12 17:19:20
1597
原创 Android数据库设计——4,动态更新数据库、数据库dao层拓展
动态更新获得从服务器传来的更新数据,解析成可执行的sql语句public class UpdateDbBean { private CreateVersion createVersion;//需要升级的数据库 public CreateVersion getCreateVersion() { return createVersion; } ...
2019-10-29 20:26:48
754
原创 Android数据库设计——3,自动化 分库、分表
分库、分表用户量大的时候必须去分库分表,分库分表也需要自动化分库前置工作/** * Describe:修改注解,增加主键标识 */@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface DbField { String value();//表列名 boolean ...
2019-10-29 20:21:42
1484
原创 Android数据库设计——2,面向对象(ORM)操作表:增、删、改、查
操作表操作表之前的优化/前置工作缓存表字段public class BaseDao<T> implements IBaseDao<T> { //...其他代码 //创建一个缓存,缓存表的字段对应的java实体类成员变量 //key是表的字段 //value是对应的java实体类的成员变量Field对象 private HashMa...
2019-10-29 20:16:59
317
原创 Android数据库设计——1,面向对象(ORM)建库、建表
创建数据库创建一个数据库工厂类,用于创建数据库操作对象和表的Dao对象//数据库工厂类public class BaseDaoFactory { //该对象是单例的 private static final BaseDaoFactory instance = new BaseDaoFactory(); //数据库对象 private SQLiteDataba...
2019-10-29 20:13:25
1259
原创 Android Q(10) 文件存储适配
Android Q官方文档Android Q 分区存储Android Q文件存储机制修改成了沙盒模式,和IOS神似应用只能访问自己沙盒下的文件和公共媒体文件对于Android Q以下,还是使用老的文件存储方式权限Android Q不再需要申请文件读写权限,默认可以读写自己沙盒文件和公共媒体文件。所以,Q以上不需要再动态申请文件读写权限。沙盒存储/读写获取沙盒指定文件夹//废弃...
2019-09-29 18:05:37
25778
24
原创 Android 换肤(全局换肤,部分换肤,字体替换,导航栏替换,自定义view换肤,夜间/日间模式)
采集大致流程监听所有activity的生命周期回调//SkinActivityLifecycleapplication.registerActivityLifecycleCallbacks(new SkinActivityLifecycle());创建activity的时候自定义布局工厂//SkinLayoutFactory@Overridepublic void onA...
2019-09-24 09:43:27
1784
1
原创 Hermes跨进程通讯——源码解析
源码分析核心类//typecenter对象专门用于缓存private static final TypeCenter TYPE_CENTER = TypeCenter.getInstance();//Channel对象用于绑定和解绑跨进程的serviceprivate static final Channel CHANNEL = Channel.getInstance();//发送各种...
2019-09-09 17:45:06
1125
原创 Android APK 反编译
所需工具链接地址jd-gui.jarapktool.jar+aoktool.batdex2.jarcsdn整合资源jd-gui.jar+apktool.jar+apktool.bat+dex2.jar步骤apktool拿到所有资源文件,不包含java代码将需要编译的apk包与上述jar包放在同一个文件夹下运行命令:在当前文件夹下运行:apktool.bat d...
2019-08-20 11:53:23
176
原创 Hermes——跨进程通信(IPC)框架,使用介绍
概述Github地址:https://github.com/Xiaofei-it/HermesAndroid进程间通信IPC框架像调用本地函数一样调用其他进程的函数在本地进程创建其他进程类的对象在本进程获取其他进程的单例在本进程使用其他进程的工具类支持进程间函数回调,调用其他进程函数的时候可以传入回调函数,让其他进程回调本进程的方法自带内存优化,内置两个垃圾回收器,地进程在远...
2019-08-16 14:19:10
3816
1
原创 Eclipse中配置Spring插件
eclipse下载spring插件 搭梯子 help -> Eclipse Marketplace… 搜索sts,下载安装SpringSource Tool Suite 安装完成后,提示重启Eclipse 切换到Spring视图 over...
2019-08-13 09:37:25
626
原创 EventBus3.0源码解析——06. 总结
EventBus总结GitHub地址需要下载源码的,只需要将EventBus中的源码复制下来即可已将EventBus的整个源码解析过程上传了,点此下载大致流程懒加载的getDefault(),在注册的时候才初始化register(Object subscriber);//注册将当前class中所有带有@Subscribe注解的方法全部缓存到eventbus中缓存Map&...
2019-08-13 09:36:30
166
原创 EventBus3.0源码解析——05. unregister 注销
unregister (注销)unregister(Object subscriber)public synchronized void unregister(Object subscriber) { //获取当前Subscriber对象所缓存的所有eventType对象 //这里的eventType代表Subscriber对象中所有标记了@Subscribe的method ...
2019-08-12 17:04:17
399
原创 EventBus3.0源码解析——03. register 注册
register(注册)//注册事件接收EventBus.getDefault().register(this);//注册事件总线,在获取到eventbus单例后就可以注册了//注册方法中有两个至关重要的方法://1. 寻找到当前object对象中所有带@Subscribe注解标记的方法并保存起来//2. 对当前object对象中所有带@Subscribe注解的方法进行订阅publ...
2019-08-12 15:55:55
439
原创 EventBus3.0源码解析——02. init 初始化
init(初始化)getDefault()//volatile关键字在java并发编程中常用,比synchronized的开销成本要小,轻便//作用是线程能访问共享变量//共享变量包括所有的实例变量,静态变量和数组元素,他们都存放在堆内存中static volatile EventBus defaultInstance;//一个双重锁定的单例public static EventBu...
2019-08-12 15:45:24
167
原创 EventBus3.0源码解析——01.使用方法、@Subscribe
使用方法//注册事件EventBus.getDefault().register(Object subscriber);//注销事件EventBus.getDefault().unregister(Object subscriber);//发送EventBus.getDefault().post(Object event);//接收//这里的方法名不是关键所在,关键是发送的O...
2019-08-12 15:39:51
3881
原创 EventBus3.0源码解析——04. post 发送
EventBus的源码结构很清晰也值得我们去学习,分析的东西太多,只能分段。EventBus的GitHub地址想要将源码导入as中分析的,只需要下载EventBus文件夹下的代码即可初始化getDefault()//volatile关键字在java并发编程中常用,比synchronized的开销成本要小,轻便//作用是线程能访问共享变量//共享变量包括所有的实例变量,静态变量和数...
2019-08-08 18:01:15
333
原创 java 动态代理
代理模式一个对象A通过持有另一个对象B,可以具有B同样的行为的模式。对象B是真正的实现类,而对象A则是相对于对象B的代理类。对象A可以在调用对象B的实现之前或者之后做一些事情,从而实现AOP的思想JDK的动态代理jdk动态代理是jre提供给我们的类库,可以直接使用//定义功能实现的接口public interface ITest{ String func1(String ...
2019-08-05 11:21:24
144
原创 Android中使用AspectJ(AOP)实现切面的三种功能(执行前、执行后、环绕)
Andorid Studio中配置AspectJapp module中dependencies { implementation 'org.aspectj:aspectjrt:1.9.4'}project module中buildscript { dependencies { classpath 'org.aspectj:aspectjtools:1.9.4'...
2019-08-02 23:24:30
1139
原创 Android消息机制源码分析
Message//消息的传递包括内容、标识和Handler对象public class Message { //消息内容 public Object obj; //消息标识 public int what; //handler对象 public Handler target;}MessageQueue//消息队列的功能包含://1. ...
2019-07-18 18:21:59
161
原创 android studio搭建cmake的ndk环境
下载所需资源android studio中下载Ndk、LLDB、CMake创建可开发的jni项目环境新建jni文件路径项目右键: new -> folder -> Jni Folder文件存放路径:“src/main/cpp/”创建cmake配置文件CMakeLists.txta. 配置信息详见地址https://d.android.com/studio/pro...
2019-06-25 16:48:28
506
原创 Android MVP 最优实现
概述Model:执行逻辑View:视图展示Presenter:业务处理Contract:当前view的契约者Contract契约者,相当于约束一个activity或者fragment使用的mvp中的具体哪些方法public interface BaseContract { interface Model { void getVoid(); ...
2019-06-25 16:36:37
450
原创 Tomcat部署项目的几种方式
1,直接将项目的WebContent文件夹复制到tomcat的webapps文件夹下,运行tomcat2,将项目用IDE打成war包,将war包放在webapps文件夹下,运行tomcat3,静态部署,修改server.xml文件: 进入conf文件夹:D:\apache-tomcat-7.0\conf 打开server.xml 在<Host>标签中加入:<Ho...
2018-08-06 22:57:07
4210
原创 Maven——3,通过Maven发布web项目
Eclipse中新建Maven project的web项目 配置Maven项目点击项目右键&gt;&gt;Build Path&gt;&gt;Configure Build Path1,将项目修改成web项目 2,删除web项目发布时无用代码 3,配置Tomcat tomcat根目录下,conf -&gt; tomcat-users.xml&lt;r...
2018-08-01 20:47:47
1406
原创 Maven——2,Maven的pom.xml文件下标签说明
根标签下的基本配置信息<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache...
2018-08-01 20:35:40
614
原创 Maven——1,Eclipse中搭建Maven环境
Maven的仓库 类型 描述 中央仓库 提供所有jar包下载地址:http://mvnrepository.com/ 本地仓库 你在中央仓库里下载好的jar包所保存的文件夹,一般是本地文件夹 私服 相当于一个大型的本地仓库,规模庞大的公司里会有自己的私服,局域网内使用,避免一些不允许联网的情况下使用maven仓库Windows配置...
2018-08-01 20:13:46
329
原创 1.5-Spring 数据库操作
JDBC 框架 SQL 的存储过程 编程式事务管理 声明式事务管理 maven仓库的配置<properties> <spring-version>4.3.17.RELEASE</spring-version> </properties> <!-- spring jdbc的依赖包 --> ...
2018-07-29 15:56:05
285
原创 1.4-Spring 框架的 AOP
面向方面的编程(AOP) maven配置:<properties> <spring-version>4.3.17.RELEASE</spring-version> </properties> <!--spring核心依赖 --> <!-- spring-context -->...
2018-07-29 15:15:57
188
原创 1.3-Spring 基于注解的配置
1,从 Spring 2.5 开始就可以使用注解来配置依赖注入 2,关键字&lt;context:annotation-config/&gt; 注解 描述 @Required 注解应用于 bean 属性的 set 方法 @Autowired 注解可以应用到 bean 属性的 set 方法、非 setter 方法、构造函数、属性 @Qualifie...
2018-07-29 14:49:15
227
原创 1.2-Spring Beans 自动装配
自动装配 ‘byName’关键字autowire=”byName”public class Test1{ private Test2 test2; private String name; //省略get/set方法 public void check(){ test2.check(); }}public class Test2...
2018-07-29 13:08:11
237
原创 1.1-Spring 依赖注入
构造函数的依赖注入关键字:constructor-arg bean.xml中使用constructor-arg指向某个定义的bean,可以直接传递给构造函数public class Test1 { private Test2 test2; private int int1; private String str1; public Test1 (Test2 test...
2018-07-29 12:48:46
516
原创 1.0-Spring IoC 容器
1,Spring 容器使用依赖注入(DI)来管理组成一个应用程序的组件 2,Spring IoC 容器利用 Java 的 POJO 类和配置元数据来生成完全配置和可执行的系统或应用程序 3,配置元数据可以通过 XML,Java 注释或 Java 代码来表示BeanFactory 容器(已过时)XmlBeanFactory factory = new XmlBeanFactory ...
2018-07-29 12:09:50
199
原创 android MVVM开发框架——(4)DataBinding绑定view自定义属性
通常情况下我们会自定义标签来自定义view的属性供我们自己使用,但是如何在databinding中添加自定义属性呢? 我们来看看1,在xml中定义属性<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http
2017-10-31 22:14:53
3149
原创 android MVVM开发框架——(3)DataBinding 应用于RecyclerView
android MVVM开发框架——(1)DataBinding 基础应用android MVVM开发框架——(2)DataBinding 应用于ListView如果你对mvvm或者databinding不太熟悉的,建议先去看看前两篇博文
2017-10-31 21:25:45
4607
原创 android MVVM开发框架——(2)DataBinding 应用于ListView
android MVVM开发框架——(1)DataBinding 基础应用 附上mvvm中databinding的基本应用链接,只有找到了基本用法才能继续进阶
2017-10-31 20:29:35
4627
原创 android MVVM开发框架——(1)DataBinding 基础应用
概述Model :基本业务逻辑 View :视图内容 ViewModel: 将前面两者联系在一起的对象作用它通过双向绑定(松耦合)解决了Model与View联系比较紧密的问题。 mvvm的双向绑定有一定的局限性,后面会仔细讲到。配置android 官方早在Android Studio 1.3、Android Gradle插件1.5之后默认添加了,只需要在项目的build.gradle中配置:a
2017-10-31 20:20:52
1279
android native+h5 demo
2016-11-28
android BlueToothDemo (蓝牙搜索,配对,连接,传输)详细讲解见博客
2016-09-30
java socket 聊天之传文件
2016-09-24
基于java socket的聊天-群聊
2016-09-21
基于java socket的聊天-单聊
2016-09-19
java socket 聊天
2016-09-18
android 轮番图(自动轮番手动轮番)
2016-09-04
android 分组+悬停 listview
2016-06-12
android 换肤demo
2016-06-03
基于RxJava的替换EventBus的RxBus
2016-05-28
android 下 mvp架构的应用和优化
2016-05-27
android 7.0 通知栏设置.setWhen()但是不显示时间
2017-03-26
gson默认将int型转换成double型怎么解决?
2015-05-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人