android
文章平均质量分 72
yihuangol
这个作者很懒,什么都没留下…
展开
-
java线程池的使用
1、newCachedThreadPool()创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程 /** * 1.创建一个可缓存的线程池。如果线程池的大小超过了处理任务所需要的线程,那么就会回收部分空闲(60秒不执行任务)的线程 * 2.当任务数增加时,此线程池又可以智能的添加新线程来处理任务 * 3.此线程池不会...原创 2020-04-02 15:00:57 · 95 阅读 · 0 评论 -
AIDL基本使用
一、AIDL基本概念AIDL定义:个人理解就是Android开发中提供的一种快速实现binder的工具,而binder就是一种跨进程通信,也可以不用AIDL,自己实现binder来达到同样的效果AIDL支持的基本类型 : String,int,long,boolean,float,double,ArrayList,HashMap,Parcelable二、使用1、先定义一个IPer...转载 2020-03-31 13:43:06 · 262 阅读 · 0 评论 -
JAVA反射
1、JAVA的反射机制是在运行状态中2、在运行时判断一个对象所属的类,调用任意一个对象的方法;在运行时构造任意一个类的对象,判断任意一个类所有的成员变量和方法。(要想解剖一个类,必须先要获取到该类的字节码文件对象(class)。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.)3、Person.javapackage com.e...原创 2020-03-31 13:43:24 · 84 阅读 · 0 评论 -
Java设计模式(装饰者模式)
1、UML类图如下2、Decorator.javapackage com.company.decorator;public interface Decorator { void show();}3、Person.javapackage com.company.decorator;public class Person implements Decorato...原创 2020-02-29 19:01:50 · 138 阅读 · 0 评论 -
Java设计模式(抽象工厂模式)
1、Car.javapackage com.company.factory.abstractFactory;public abstract class Car { }abstract class Audi extends Car{}abstract class BMW extends Car{}class AudiCar extends Audi implements Jiao...原创 2020-02-28 21:00:37 · 122 阅读 · 0 评论 -
Java设计模式(工厂方法模式)
1、Car.javapackage com.company.factory.factoryMode;public abstract class Car {}class BMWCar extends Car {}class Audi extends Car {}2、定义一个接口Factorypackage com.company.factory.factoryMod...原创 2020-02-28 20:30:13 · 97 阅读 · 0 评论 -
Java设计模式(简单工厂模式)
1、Car.javapackage com.company.factory.simpleFactory;public class Car {}class Audi extends Car{}class BMW extends Car{}2、Factory.javapackage com.company.factory.simpleFactory;public cla...原创 2020-02-28 20:06:43 · 82 阅读 · 0 评论 -
Java设计模式(适配器模式)
1、需要2个接口1)TypeC.javapackage com.company.adapter;public interface TypeC { String getInfo();}2)USB.javapackage com.company.adapter;public interface USB { String getInfo();}2、...原创 2020-02-28 17:55:33 · 80 阅读 · 0 评论 -
Rxjava学习(组合Observable)
Combining Observables(组合Observable)1、Zip通过一个函数将多个Observables的发射物结合到一起,基于这个函数的结果为每个结合体发 射单个数据项。Zip 操作符返回一个Obversable,它使用这个函数按顺序结合两个或多个Observables发射 的数据项,然后它发射这个函数返回的结果。它按照严格的顺序应用这个函数。它只发射与 发射数据项最...原创 2020-02-26 20:46:39 · 342 阅读 · 0 评论 -
Rxjava学习(过滤Observable)
Filtering Observables(过滤Observable)1、Debounce仅在过了一段指定的时间还没发射数据时才发射一个数据 //仅在过了一段指定的时间还没发射数据时才发射一个数据 Observable.create(new Observable.OnSubscribe<Integer>() { @Overrid...原创 2020-02-26 20:25:47 · 293 阅读 · 0 评论 -
Rxjava学习(转换Observable)
Transforming Observables(转换Observable)1、Map对Observable发射的每一项数据应用一个函数,执行变换操作 //将Integer类型转换为String类型 Observable.just(123).map(new Func1<Integer, String>() { @Override...原创 2020-02-26 00:47:00 · 1182 阅读 · 0 评论 -
rxjava学习(创建Observable)
1、扩展的观察者模式onComoleted()事件onError()事件2、Observable被观察者Observer观察者subscribe订阅3、hello WorldonCompleted()和onError()回调一个package rxjava;import rx.Observable;import rx.Subscriber;public...原创 2020-02-25 02:26:27 · 654 阅读 · 0 评论 -
java修饰符
1、private1)在当前类中可以直接使用。2)在类之外是不可以被使用的,如果要是用可以当前类中开放一个公用方法,在公用方法中可以使用这个私有成员,从而达到间接使用私有成员。3)在继承中,私有成员被禁止使用。2、public1)在当前类中可以直接使用。2)在类之外通过对象是可以被使用的。3)在继承中也是可以被使用的。3、protected(1)同一个包的情况...原创 2020-02-22 16:22:41 · 104 阅读 · 0 评论 -
android常见内存泄漏
1、静态变量类中定义了静态Activity变量,把当前的Activity赋值给静态变量,如果Activity生命周期结束的时候静态变量没有清空,就会导致内存泄漏。static变量是贯穿整个应用的生命周期,所以被泄漏的Activity就会一直存在于应用的进程中,不会被回收。private static Activity sActivity;@Override protected...转载 2020-02-19 20:23:19 · 219 阅读 · 0 评论 -
MVP模型
1、MVP模型简介MVP即Model-View-Presenter模型说明:1)MVPActivity需要实现IMVPView接口,含有MVPPresenter的引用 2)MVPModel是数据的处理 3)MVPPresenter是连接View和Model的,含有View和Modle的引用2、IMVPView.javapackage ...原创 2020-02-17 15:55:55 · 2105 阅读 · 0 评论 -
MVC模型
1、MVC模型简介MVC的全名是Model View Controller,即模型(model)- 视图(view)- 控制器(controller)Controller:Activity、FragmentView:layout、View控件Model:数据处理(网络请求,SQL等)2、activity_normal.xml<?xml version="1.0...原创 2020-02-17 15:20:40 · 173 阅读 · 0 评论 -
native学习六(JNI访问java类方法)
1、Animal.javapackage com.example.demo;import com.example.demo.utils.Logger;/** * author : huangyi * date : 2020/2/10 * desc : */public class Animal { public final static String TA...原创 2020-02-17 02:58:01 · 132 阅读 · 0 评论 -
native学习五(JNI访问java类字段)
1、MainActivity.ktclass MainActivity : AppCompatActivity() { private val TAG = "MainActivity" var strings = arrayOf("apple", "pear", "banana") override fun onCreate(savedInstanceState...原创 2020-02-17 02:24:01 · 283 阅读 · 0 评论 -
native学习四(JNI中引用类型转换)
1、MainActivity.ktclass MainActivity : AppCompatActivity() { private val TAG = "MainActivity" var strings = arrayOf("apple", "pear", "banana") override fun onCreate(savedInstanceState...原创 2020-02-17 02:02:55 · 308 阅读 · 0 评论 -
native学习三(JNI中字符串类型转换)
java传递字符串到jni1、JNIString.ktpackage com.example.demo.jni/** * author : huangyi * date : 2020/2/10 * desc :字符串操作 */class JNIString { external fun callNativeString(str: Stri...原创 2020-02-17 01:49:20 · 291 阅读 · 0 评论 -
native学习二(JNI中基础数据类型)
1、MainActivity.ktclass MainActivity : AppCompatActivity() { private val TAG = "MainActivity" var strings = arrayOf("apple", "pear", "banana") override fun onCreate(savedInstanceState...原创 2020-02-17 01:30:57 · 704 阅读 · 0 评论 -
Fragment基础点滴学习---静态加载
1、静态加载直接在xml文件中采用标签的形式注意几点:使用静态加载时,起子fragment中的控件也会被加载,列如本例中的button和text1)fragment.xml android:layout_width="match_parent" android:layout_height="match_parent" android:orienta原创 2015-11-02 20:41:57 · 334 阅读 · 0 评论 -
ViewPager-------Fragment作为ViewPager的数据源(FragmentPagerAdapter)
FragmentPagerAdapter会将所有的页面全部加载进来,这与PagerAdapter不一样,PagerAdapter只是加载3个(3个为一组进行加载),当ViewPager装载的Fragment比较少的时候可以用到FragmentPagerAdapter。1、四个Fragment加载的xml view1.xml view2.xml view3.xml view原创 2015-11-08 10:46:15 · 468 阅读 · 0 评论 -
native学习
一、在Native层返回字符串1、MainActivity.ktpackage com.guide.testimport android.os.Bundleimport android.support.v7.app.AppCompatActivityimport android.util.Logimport kotlinx.android.synthetic.main.act...转载 2019-07-10 17:38:41 · 642 阅读 · 0 评论 -
ArrayAdapter和SimpleAdapter
1、ArrayAdapter// 匹配布局文件中的ListView控件 listView = (ListView) findViewById(R.id.listView); // 数据适配器的定义 String[] data = new String[] { "java", "C++", "JavaScript", "Php", "Python" }; ArrayAda原创 2015-11-06 22:09:42 · 362 阅读 · 0 评论 -
OnItemClickListener与OnScrollListener监听器
1、OnItemClickListene监听器可以处理视图中单个条目的点击事件2、OnScrollListener监听器监听滚动上完变化,可以用于试图在滚动中的加载public class MainActivity extends Activity implements OnItemClickListener, OnScrollListener { private List原创 2015-11-06 22:29:31 · 553 阅读 · 0 评论 -
viewpager-----View作为ViewPager的数据源(PagerAdapter)
本章介绍基本的ViewPager的使用1、需要有四个View view1.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"原创 2015-11-07 17:08:15 · 2078 阅读 · 0 评论 -
ViewPager-----为ViewPager页卡设置标题(PagerTabStrip)
设置PagerAdapter的标题,需要使用到android.support.v4.view.PagerTabStrip演示效果如下:接着上代码:1、view1.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="matc原创 2015-11-07 18:04:19 · 996 阅读 · 0 评论 -
ViewPager-------Fragment作为ViewPager的数据源(FragmentStatePagerAdapter)
FragmentStatePagerAdapter与FragmentPagerAdapter相比可以加载更多的Fragment。1、四个Fragment加载的xml view1.xml view2.xml view3.xml view4.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/原创 2015-11-08 11:27:39 · 321 阅读 · 0 评论 -
startService的生命周期
startService():一般用于在后台上传文件或者下载文件等,不跟其他组件通信,就算启动它的应用被销毁了,它仍然会欢快的在后台执行,直到完成任务的时候自刎(自己调用stopSelf())或者被其他人下黑手(调用stopService())。1、activity_main.xml 里面只含有两个button,用于启动和停止服务<RelativeLayout xmlns:an原创 2015-11-10 20:57:07 · 510 阅读 · 0 评论 -
BindService的生命周期以及使用方法。
bindService():允许其他组件跟它进行通信,允许多个客户端绑定到同一个service上,当所有的客户端都解除绑定后,该service就销毁了。1、main.xml包括bindservice和unbindservice2个按钮,还有模拟的四个按钮 <LinearLayout xmlns:android="http://schemas.android.com/apk/res原创 2015-11-10 22:48:21 · 5770 阅读 · 0 评论 -
ImageView中scaleType参数配图详细说明
一、已经很久没有写博客了,有一些基本的常识没有搞清楚,这次使用代码亲自测试一把,首先来两张图片,一张小图分辨率为494x212;一张大图,分辨率为3840x2400。二、再贴一下基本的xml代码:xml version="1.0" encoding="utf-8"?>RelativeLayout xmlns:android="http://schemas.androi原创 2016-12-28 22:34:06 · 600 阅读 · 0 评论 -
BaseAdapter优化------文艺式
1、在activity_main.xml中定义一个ListView<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"转载 2015-11-06 21:42:09 · 315 阅读 · 0 评论 -
Fragment基础点滴学习---Activity传递数据到Fragment(Fragment使用静态加载的方式)
1.采用静态的方式定义Fragmentmain.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:layout_width="match_parent" android:layout_height=原创 2015-11-06 21:12:05 · 483 阅读 · 0 评论 -
rxjava2.x
1、添加依赖compile 'io.reactivex.rxjava2:rxjava:2.1.1'compile 'io.reactivex.rxjava2:rxandroid:2.0.1'2、在编译的时候可能会出现如下错误Error:Execution failed for task ':rxjava2demo:transformResourcesWithMerge原创 2017-07-04 16:52:31 · 1369 阅读 · 0 评论 -
rxjava1.x学习
1、介绍a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一个在Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库),说白了就是异步。2、基本概念Observable:被观察者Observer:原创 2017-07-04 15:23:44 · 416 阅读 · 0 评论 -
okhttp3使用详解
1、加入对okhttp的依赖在app的build.gradle当中的dependencies{}标签中加入依赖compile 'com.squareup.okhttp3:okhttp:3.3.1'2、okhttpclientclient = new OkHttpClient();3、http get(同步)需要新建立一个子线程,对于超过1MB的响应body,应使用流的方式来处理原创 2017-07-04 14:05:20 · 1263 阅读 · 0 评论 -
BottomNavigationView的使用(结合Fragment)
实现的效果如下图,既可以切换下面的标签来切换fragment,也可以直接左右滑动切换fragment。1、首先当然是依赖导包compile 'com.android.support:support-v4:25.3.1'compile 'com.android.support:design:25.3.1'2、xml文件中布局 <android.suppo原创 2017-07-05 08:51:48 · 9755 阅读 · 0 评论 -
Fragment基础点滴学习---动态加载加载
动态加载1)MainActivity.javaimport android.app.Activity;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.os.Bundle;import android.widget.Button;pub原创 2015-11-02 21:14:56 · 313 阅读 · 0 评论 -
Fragment基础点滴学习---Fragment的生命周期
Fragment的生命周期,先上一个简单地图片1)activity_main.xml , 里面只有一个 button,主要是2个Fragment之间来回切换 android:id="@+id/layout" android:layout_width="match_parent" android:layout_height="match_parent"原创 2015-11-02 22:05:42 · 339 阅读 · 0 评论