自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 ADB操作

1.Mac下配置ADB的第一步:cd ~/第二步:touch .bash_profile(创建 .bash_profile,若已经存在该步可省略)第三步:open .bash_profile添加如下:export ANDROID_HOME=/Users/peifangjun/Library/Android/sdkexport PATH=${PATH}:${ANDROID_HOME}/p...

2020-03-28 16:09:37 1609

原创 Git使用总结

May you return with a young heart after years of fighting.愿你出走半生,归来仍是少年。​​​1.git下载与配置Windows上Git安装访问网址https://git-for-windows.github.io/,下载完成后找到安装路径下的git-bash并打开。配置身份:git config --global user.n...

2020-03-23 22:44:35 209

原创 Android6.0动态权限申请

Android6.0及以上需要手动申请权限public class PermissionActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...

2020-03-30 19:42:11 96

原创 Android数据存储与ADB

1.文件存储(一)context提供方法存取1.1将数据存储到文件中 public void save2File(Context context,String content){ FileOutputStream fos = null; BufferedWriter writer = null; try { fos...

2020-03-30 18:58:57 179

原创 Android——初识OpenGL ES 2.0

概念OpenGL(Open Graphics Library)是一个跨平台的高性能3D渲染API,OpenGL ES 2.0(Open Graphics Library Embedded System 2.0)是它的嵌入式平台2.0版本。简单实现在Activity里面,创建一个GLSurfaceView对象,然后当作Activity的布局,并实现一个Renderer接口,塞给GLSurfac...

2020-03-25 23:59:24 833

原创 Android——GLSurfaceView+Camera

一.GLSurfaceViewGLSurfaceView 继承自 SurfaceView。相比 SurfaceView,它加入了 EGL 的管理,并自带了渲染线程。另外它定义了用户需要实现的 Renderer 接口,客户端只需要将实现了渲染函数的 Renderer 的实现类设置给 GLSurfaceView 即可(策略模式)。二.Camera开发流程我们选择将 Camera 和 View 分...

2020-03-25 19:38:32 1682

原创 Android——Camera基础

Camera类概览图Camera类内部类—CameraInfoCameraInfo类用来描述相机信息,通过Camera类中getCameraInfo(int cameraId, CameraInfo cameraInfo)方法获得,主要包括以下两个成员变量:facingfacing 代表相机的方向,它的值只能是CAMERA_FACING_BACK(后置摄像头) 或者CAMERA_FAC...

2020-03-25 16:27:46 824

原创 Android JNI——Java与C相互调用

实现功能描述:在java调用native方法,在native方法里面再回调java的方法1.创建本地方法public class HelloNDK { static { System.loadLibrary("HelloNDK"); } private Context context; public HelloNDK(Context cont...

2020-03-21 16:53:27 700

原创 Android JNI搭建与实现

May you return with a young heart after years of fighting.愿你出走半生,归来仍是少年。​​​1.创建项目与NDK配置第一步:创建项目项目名:JNIDemo包名:com.pfj.jnidemo第二步:.配置NDK环境下载ndk需要的工具:打开SDKManager 然后选择SDK Tools需要下载LLDB、CMake、N...

2020-03-19 21:01:57 245

原创 LiveData+ViewModel+Lifecycle

1.LiveData+ViewModel+Lifecycle关系2.LifecycleLifecycle是一个抽象类,一个有Android 生命周期的对象附在它上面, 并且它持该对象的当前生命周期所处状态,所以其他对象可以观察到这种状态并做出相应的反应。为了跟踪这种状态,Lifecycle类包含两个枚举类Event和State。2.1 Event一个Event代表当Android 生命周...

2020-03-15 20:47:59 1718

原创 Retrofit原理简析

May you return with a young heart after years of fighting.愿你出走半生,归来仍是少年。​​​Retrofit内部封装 OKHttp,采用注解的方式发起网络请求,同时融合 Rxjava,加入优雅的异步处理方式,使得其更加强大。Retrofit的使用定义接口public interface BaiduService { ...

2020-03-14 19:59:09 111

原创 OkHttp优点及工作原理

May you return with a young heart after years of fighting.愿你出走半生,归来仍是少年。​​​1.OkHttp的优点网络优化方面:(1)内置连接池,支持连接复用;(2)支持gzip压缩响应体;(3)通过缓存避免重复的请求;(4)支持http2,对一台机器的所有请求共享同一个socket。功能方面:功能全面,满足了网络请求...

2020-03-14 18:07:56 3901

原创 Java内存模型解析

May you return with a young heart after years of fighting.愿你出走半生,归来仍是少年。​​​1.Java内存模型概念: java内存模型(Java Memory Model)是JVM规范定义的,用来屏蔽掉java程序在各种不同的硬件和操作系统对内存的访问的差异,这样就可以实现java程序在各种不同的平台上都能达到内存访问的一致性...

2020-03-14 15:14:26 213

原创 Android与H5交互

May you return with a young heart after years of fighting.愿你出走半生,归来仍是少年。​​​1.WebView在Activity中设置添加网络权限 <uses-permission android:name="android.permission.INTERNET"/>Android设置支持js脚本,否则不能交互...

2020-03-13 20:16:24 79

原创 LeetCode——23. 合并K个排序链表

合并 k 个有序链表,返回合并后的有序链表。输入:[1->3->7,1->3->4,2->6]输出: 1->1->2->3->3->4->6->7这种问题可以利用指针思想通过递归调用最终转换成合并两个有序链表的问题//链表节点public class ListNode { int val; ...

2020-03-13 09:29:15 66

原创 Android动画使用与分析

Android动画分为View动画、帧动画和属性动画。1.View动画view动画包括平移、缩放、旋转、淡入淡出四种动画效果。创建方式1:xml创建文件路径res/anim/anim_test.xml<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/...

2020-03-12 14:37:33 101

原创 RxJava2的使用

May you return with a young heart after years of fighting.愿你出走半生,归来仍是少年。​​​1.RxJava2简介什么是Rxjava2?Rxjava是一个异步框架,功能和handler类似,采用链式调用。基于观察者模式,有三个重要角色:被观察者(Observable)、订阅(subscribe)、观察者(Observer)。...

2020-03-10 16:40:55 218

原创 深度优先搜索—java语言描述

May you return with a youny heart after years of fighting.愿你走出半世,归来仍是少年。问题一:输入n,输出1~n的全排列设想场景:有n个盒子和n张不同的牌,每个盒子一张牌,有多少种放法?思路:假设有3个盒子(b1、b2、b3),手里3张牌(A、B、C),每次都按ABC的顺序放牌,首先来到b1放A,并标记A不在手上了,然后来到b1...

2020-03-08 22:12:41 89

原创 Android TextView分段显示

1.需求分析想要在一个TextView显示不同字段效果,字体大小、颜色、下划线、点击事件等等显然直接textView.setText(str)无法达到效果,多个TextView又无法控制位置,所以这里通过SpannableStringBuilder类对一个字符串分段显示2.工具类public class MyTextSpan { public SpannableStringBui...

2020-03-07 19:12:49 972

原创 popupwindow和dialog的对比

1.两者相同点1.1 都可以设置对话框1.2 都可以设置呈现各种弹窗样式2.两者区别本质区别:Dialog是非阻塞式对话框,AlertDialog弹出时后台还可以做其他事情;popupwindow是阻塞式对话框,popupwindow弹出时程序会等待,在popupwindow结束前程序会一直等待,当调用dismiss方法后popupwindow弹窗关闭程序才向下进行其他区别:1...

2020-03-06 23:40:22 898

原创 AndroidStudio封装SDK

1.Module改成SDK的方法第一步:在module的build.gradle下apply plugin: ‘com.android.application’ 改成apply plugin: ‘com.android.library’同时删除build.gradle下defaultConfig的 applicationId第二步:在配置文件下,删除启动入口<?xml ver...

2020-03-06 22:34:44 286

原创 Android 进程间通信

1.进程与线程对比1.1 进程是系统进行资源分配的基本单位,线程是任务执行和调度的基本单位。1.2 一个操作系统内可运行多个进程,每个进程拥有独立的内存空间;一个进程内可运行多个线程,多个线程共享所在进程的系统资源。1.3 线程之间相互切换,资源开销较小;而进程之间相互切换,资源开销较大。1.4 进程与线程都统一由CPU进行调度执行,进程是线程运行的基本环境,线程相当于进程的子任务,颗粒度...

2020-03-05 23:55:02 141

原创 Android ViewPager简单使用

1.ViewPager实现自动滚动效果轮播图由背景图片、文字描述、导航点组成,图片在适配器里面更新,由于文字描述、导航点是配合ViewPager显示,在滚动到当前item时更新,代码如下:public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener { pri...

2020-03-04 23:53:48 140

原创 浅析线程池

1.为什么要使用线程池?创建单个线程和使用线程池对比1.每次new Thread是新建线程对象,不能重复使用,因为new是相当于在内存中独立开辟一个内存来让该线程运行,所以只能释放线程资源和新建线程,线程的创建和销毁内存开销大,性能差。而使用线程池,可以重复使用存在的线程,减少对象的创建,消亡的开销,性能较好。2.频繁地创建和销毁线程,有可能占用过多的系统资源导致OOM。而使用线程池可以有...

2020-03-02 16:38:03 82

原创 Java——锁

1.什么是死锁?线程A持有资源a等待b资源,线程B持有资源b等待a资源,形成死锁状态。2.案例public class Moive { Object o1 = new Object();//资源o1 Object o2 = new Object();//资源o2 boolean flag; public void buyAndWatch(String s) { if (flag...

2020-03-02 12:16:10 183

原创 判断两个单向链表是否相交

1.分析问题:链表分为有环和无环,如果两个链表存在相交,则只有两种可能,两个链表都无环或者都有环。下面分别讨论。2.判断链表是否有环2.1定义链表 //单向链表 public static class LinkNode{ int data; LinkNode next = null; public LinkNode(int data) { this.data = da...

2020-03-01 23:05:39 411

原创 TCP与UDP区别(面试)

1.TCP1.1 TCP的优点可靠,稳定。TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。1.2 TCP的缺点慢,效率低,占用系统资源高,易被攻击。TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在...

2020-03-01 11:59:00 1335 1

测试开发.xmind

测试开发.xmind

2021-10-12

空空如也

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

TA关注的人

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