自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (6)
  • 收藏
  • 关注

原创 创建型模式1-3种工厂模式

设计原则:依赖倒置。即依赖抽象,不依赖具体的类,低层组件依赖高层的抽象。工厂方法是用来处理对象的创建的,并将行为封装在子类中,这样关于超类的代码和子类对象创建代码就解耦了。简单工厂模式(静态工厂模式)简单工厂中包含了必要的判断逻辑,根据客户端条件动态的实例化相应的类,对于客户端来说是去除了具体产品的依赖。组成如上图所示,设计到三个角色:抽象产品 Product一般是抽象类。具体产品 ConcreteProduct需要实现抽象产品的类。简单工厂Fractory一般情况

2021-05-10 08:25:30 122

原创 手撕Binder实现Android IPC

android 跨进程通信:Binder首先推荐Carson_Ho大神文章:Android跨进程通信:图文详解 Binder机制 原理还有任玉刚大神的 《android 开发艺术探索》基本上,这个博客和书把 binder 机制机制解释的非常好了。接下来就通过手写 AIDL 实现 android 的跨进程通信。当前需要创建两个应用,分别为 Server 和 Client,Server 通过 Service 暴露一个接口给 Client 调用。Server该 App 主要就是一个Service,提供

2020-12-22 20:17:32 185 3

原创 个人学习Kotlin文档

该文档为初步学习kotlin,主要是一些语法内容,记录下来,防止自己忘记,并且以后也可以看看,查缺补漏。kotlin 基础属性字段和其访问器的组合。在kotlin 中,属性是头等语言。在kotlin中,声明了一个属性后,就会自动生成默认的访问器,即getter和setter方法。备注:当属性是使用 is 开头的,生成的 getter 方法不会添加任何前缀,在生成 setter 方法是 set 会被替换成 is 。总的来说,就是 getter 和 setter 方法都不会添加前缀了。那么如果属性就

2020-10-13 00:07:28 537 2

原创 JetPack-Databinding

简介将布局中的界面组件绑定到应用的数据源中简单使用使用步骤:创建数据对象,即一个类创建布局文件绑定数据例子:编译环境在对应模块的build.gradle下添加dataBinding元素android { // DataBinding必须 dataBinding { enabled = true }}创建数据对象这里我创建User类,用于绑定到xml文件上data class User(val name: String)

2020-07-20 18:00:04 190

原创 JetPack-Navigation

简介处理Fragment事物,即代替FragmentManager完成Fragment之间的跳转。用于具有一个主Activity和多个Fragment目的地的应用。组件导航图包含了所有导航相关信息的XML资源。一般防止在res/navigation目录下NavHost容器。用来显示Fragment的,即Activity中的fragment,要求实现NavHostNavController在NavHost中管理应用导航的对象一句话就是,通过NavController,获取当

2020-07-15 16:28:27 754

原创 JetPack-Room

简介android架构组件中的数据持久化组件库,是在Sqlite上实现的一条ORM(对象关系映射,Object Relational Mapping)解决方案相关概念Database使用@Database注解,要求继承RoomDatabase并且是抽象类,因为创建数据库比较消耗资源,所以一般都是使用单例模式Entity使用@Entity注解,每个Entity都对应这数据库中的一张表DAO使用@Dao注解,定义了访问表的接口,主要是在里面定义增删改查方法,并在方法上使用注解添加对应

2020-07-10 17:22:58 240

原创 Android APT注解处理器

APT简介Annotation Processing Tool ,即注解处理器。一般用来处理自定义的注解,然后根据注解生成一个辅助类。最著名的例子就是@BindView注解。注意,这是在编译时扫描所以继承AbstractProcessor类,然后调用process方法去处理。因为是在编译的时候处理的,所以很多时候需要用到反射。流程创建一个java library库,用来提供注解创建一个java library库,用来处理注解在android app中引用总体流程基本上分为这三个部分。但

2020-07-07 16:57:25 610

原创 Material -CollapsingToolbarLayout

简介一个FrameLayout用于实现可折叠的标题栏,通常在子布局中放一个Toolbar必须作为AppBarLayout 的子类,才能发挥出效果xml属性在CollapsingToolbarLayout中的部分属性collapsedTitleGravity :折叠态标题位置collapsedTitleTextAppearance :折叠态标题外观expandedTitleGravity :扩展态标题位置expandedTitleMargin* :扩展态标题的Margin。注意与exp

2020-06-23 18:18:35 966 2

原创 Material -AppBarLayout

AppBarLayout简介一个垂直的LinearLayout必须在CoordinatorLayout 中使用,否则绝大多数功能都没有用子布局中设置 app:layout_scrollFlags或者子view中添加**setScrollFlags()**设置动作在父布局CoordinatorLayout中,必须有ScrollView与AppBarLayout关联。这个ScrollView不一定非得是CoordinatorLayout的直接子View。ScrollFlagsSCROLL_F

2020-06-23 18:09:35 1072

原创 Material -TabLayout

简介一个HorizontalScrollView,普普通通,没啥特殊的。XML属性仅仅列出比较难理解的属性。其余的看属性名称就理解了。tabGravity:设置整个tab的位置。比如设置成center,则整个Layout都会缩在中间。tabContentStart :开始位置偏移量。这个具体干啥的没弄清楚tabIndicatorColor:指示器的颜色tabIndicatorFullWidth:指示器的宽度。false表示与上面的item宽度一致。tabInLineLa

2020-06-22 16:05:25 537

原创 自己常用的IDEA配置

安装windows平台下载exe,然后一路next即可ubuntu 待定破解。。。。。。其他设置忽略大小写Editor -> General -> Code Completion,将Mathc 那一行去掉勾鼠标悬停提示编码全部改为utf-8字体大小直接在这里设置,然后就可以通过使用ctrl+鼠标滚轴,动态调整编辑界面的文字大小,贼好用...

2020-05-22 09:19:23 188

原创 ubuntu 基础软件安装

安装目录在ubuntu中,一般有三个安装目录:。/usr系统级别目录,可以理解为windows中 C:/Windows 目录。其中 /usr/lib 可以理解为 C:/Windows/System32,存放所有可执行文件的库文件。这个目录下通常都是系统发行时自带的程序。usr/local用户的程序目录,可以理解为 C:/Program Files 。 用户自己编译的软件默认会安装到这个目录下。/opt 用户的程序目录,opt 就是optional 缩写,可选项。一般情况下,安装一些大型

2020-05-19 09:24:18 381

原创 win10与ubuntu 双系统

序:电脑刚组装好,接下来开始装系统了。本次准备装个win10+ubuntu18.04电脑配置板子:微星B450M mortar maxcpu:amd 3600显卡:七彩虹 GTX 1660s 战神内存条:骇客神条3200 8G*2硬盘:西数SN550 1T机箱:先马平头哥 M2显示器:AOC 小金刚 24G2主要是板子与显卡,接下来很多特定的操作都与板子和显卡有关微星主板装win7系统开机,按住del设置进入bios,设置什么的不同版本的bios是不同的,自行设置,反正搞到U盘启动就可

2020-05-15 09:32:08 611

原创 android studio 3.+ JNI与生成so文件

JNI使用1.安装SDK Tools首先要求你的android studio支持,所以 File -> Settings , 然后搜索框里面搜索 Android SDK, 然后到 SDK Tools 里面,把 LLDB,NDK, CMake都选中,如下所示:2.创建项目最好重启一下android studio ,然后创建新项目,选择native c++,如下所示创建完成后,app...

2020-02-15 15:26:26 272

原创 OkHttp源码看一看,了解一下思路

OkHttp使用过程中基本上分为三步: //1.创建一个OkHttpClient对象 OkHttpClient client = new OkHttpClient(); //2.创建一个请求 Request request = new Request.Builder() ...

2018-08-26 19:13:04 199

原创 Volley源码看一看,了解一下思路

Volley使用步骤一般来首就是三步:1.创建一个Request对象。如下所示,创建一个StringRequest对象 StringRequest request = new StringRequest( url, new Response.Listener<String>() { ...

2018-08-21 20:27:52 186

原创 EventBus源码看一看,了解一下思路。

EventBus使用的是观察者模式,使用步骤主要分为三步: 1.订阅者注册 EventBus.getDefault().register(this); 2.发布者发布事件 EventBus.getDefault().post(event); 3.订阅者解除注册 EventBus.getDefault().unregister(this);观看...

2018-08-20 20:28:17 125

原创 Android源码--IPC相关

菜鸟一枚,研究了一下源码,发现看不懂,所以就记录一下自己能看懂的,备忘. 有关 BInder 的几篇, 很好 Android:图文详解 Binder跨进程通信 原理 android进程间通信主要用到的方式有AIDL, Intent, Binder, ContentProvider, Socket. 其中最最最重要的就是Binder, 而Binder涉及到类主要有一下几个:IBinder, Bi...

2018-04-21 17:05:30 201

原创 Java dos命令窗口获取方法的签名

内容:演示如何获取一个方法的签名。在JNI中,如果C语言要调用Java模块,必定要用到反射技术(详情),而在反射技术中,必须要用到签名才能让C语言获取Java的方法。步骤:1.创建一个Java项目目录结构如下在该项目中创建一个类,该类如下:package hhh.exercise.test;public class Test { public void method1() {

2017-04-09 16:50:14 715

原创 APK文件反编译工具

工具:使用的是Android逆向助手v2.0版本 下载地址:资源步骤:1.打开该工具2. 提取dexapk所有的代码都保存在dex中完成后会生成一个.dex的文件3.将.dex文件转成jar包转换完成后,系统会自动打开jar包,就会看到Java代码了

2017-04-04 16:42:00 761

原创 Java 控制台编译Java文件并调用

内容:  演示如何使用控制台将Java文件编译成class文件,然后在控制台上调用步骤:1.首先创建一个Java文件,如下所示:public class Hello { public static void main(String[] args) { System.out.println("Hello World from java"); }}如果是用记事本写的,最后

2017-04-02 15:10:08 5460

VisualSVN-Server-3.6.0-x64.msi

这东西现在应该都没人用了,发现现在修改需要描述信息,所以就水水,但是凑齐五十个字有点难,所以就废话以下。

2017-04-22

TortoiseSVN-1.8.10.26129-x64-svn-1.8.11

SVN可视化客户端工具,用于版本控制

2017-04-22

AsyncHttpClient

这是一个来自git的开源项目,对httpClient进行了封装,更加的方便。 这东西现在应该都没人用了,发现现在修改需要描述信息,所以就水水,但是凑齐五十个字有点难,所以就废话以下。

2017-04-17

org.apache.http.legacy.jar

对于Android 6.0以后,HttpClient框架已经移除,官方推荐使用HttpURLConnection,因为后者的效率更高。如果要想在Android 6.0 以后使用HttpClient,需要在自己的项目下添加org.apache.http.legacy.jar,即可使用

2017-04-16

SQLite expert

这是一个查看android多种sqlite数据库文件的软件,安装后可以向SQLyong一样查看数据库。只是这个是专门用于SQLItem数据库的,更好用,开发中涉及SQLite数据十分方便

2017-04-13

Android 逆向助手v2.0

该资源为Android安装包的反编译工具,可以从apk文件中获取Java代码

2017-04-04

空空如也

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

TA关注的人

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