- 博客(117)
- 收藏
- 关注
原创 自定义TextureView录制视频的一些初始化
public class VedioTextureView extends TextureView { private MediaPlayer mediaPlayer; private boolean isPrepared = false; private boolean isRecord = false; private boolean isPlay = fa...
2018-08-31 09:50:07 1143
原创 自定义TextureView拍照
public class MyTextureView extends TextureView { private Camera camera; public MyTextureView(Context context){ this(context,null); } public MyTextureView(Context context, Attr...
2018-08-31 09:47:36 1083
原创 自定义网格和瀑布流布局的分割线RecyclerView.ItemDecoration
public class DividerGridItemDecoration extends RecyclerView.ItemDecoration{ private final int[] ATTRS = new int[]{android.R.attr.listDivider}; private Drawable drawable; public DividerGr...
2018-08-31 09:45:55 1340
原创 定义一条中间带小三角的线
public class LineView extends View { private Paint mPaint; private int mWidth; private String location; public LineView(Context context){ this(context,null); } public L...
2018-08-31 09:43:47 300
原创 fastjson的Convert.Factory实现(用fastjson解析Retrofit网络请求返回的数据)
public class FastJsonConverterFactory<T> extends Converter.Factory { private static final MediaType MEDIA_TYPE = MediaType.parse("application/json;charset=UTF-8"); private static final ...
2018-08-31 09:41:29 2756
原创 用新增DEX的方法实现热修复
public class HotFix { public static final String FIX_DEX_PATH = "fix_dex";//fixDex存储的路径 public static final String DEX_OPT_DIR = "optimize_dex";//dex的优化路径 public static final String DEX_B...
2018-08-31 09:35:36 468
原创 自定义轮播图
package com.qianbao.financeforyou.widgit;import android.content.Context;import android.os.Handler;import android.os.Message;import android.support.v4.view.PagerAdapter;import android.support.v4...
2018-08-31 09:34:03 267
原创 危险权限,获取应用权限列表
获取应用所需权限(只能获取在AndroidManifest.xml文件中声明的权限,像手机设置-》权限管理-》应用-》权限列表这个里面的权限并不是都能获取,比如读取应用列表的权限就获取不到)PackageInfo pkgInfo = packageManager.getPackageInfo(getPackageName(), PackageManager.GET_PERMISSIONS);...
2018-08-08 15:34:54 4718
原创 部分手机读取应用列表权限
部分手机比如小米,华为在权限管理那里有个读取应用列表的权限,这个读取应用列表的权限不需要申请,部分手机系统默认就有的,并且默认打开。某型号小米手机关闭读取应用列表权限后仍然可以手机安装的第三方应用,华为手机关闭读取应用列表权限后不能读取第三方应用列表,只可以读取系统应用。由于没有对应的权限,查看源码也没有对应的方法可以确定开关的状态(貌似原生应用是没有这个权限的,应该是不同的手机厂商定制的,所以需...
2018-08-08 15:20:39 22883
原创 修改状态栏颜色和状态栏字体颜色2
一个activity多个fragment,修改每个fragment的状态栏颜色和状态栏字体的颜色1、设置activity的状态栏透明,设置activity的theme value-v19.xml <style name="FirstPageStyle" parent="Theme.AppCompat.Light.NoActionBar"> <item name="a...
2018-07-13 18:31:47 1435
原创 修改状态栏颜色和状态栏字体颜色
一个activity多个fragment,修改每个fragment的状态栏颜色和状态栏字体的颜色1、设置activity的状态栏透明,设置activity的theme value-v19.xml <style name="FirstPageStyle" parent="Theme.AppCompat.Light.NoActionBar"> <item name="a...
2018-07-13 17:06:38 2434
原创 Intent调用常见系统组件方法
Intent调用常见系统组件方法: //打开设置了 <data android:host="my.com" android:scheme="m" />的应用 Intent intent = new Intent(); intent.setData(Uri.parse("m://my.com")); ...
2018-07-12 14:24:44 1196 1
原创 BitmapFactory.Options的属性解析
BitmapFactory.Options的属性解析:inJustDecodeBounds=true,让解析方法禁止为bitmap分配内存,返回值不再是一个Bitmap对象,而是null,但是BitmapFactory.Options的outWidth和outHeight和outMimeType都会被赋值,这个属性可以让我们在加载图片之前就能获取到图片的长宽和MIME类型,从而根据情况对图片进行压...
2018-07-12 14:07:10 850
转载 get到一种进程间通讯新方法---Messenger
实现两个数相加的功能服务端:public class MessageService extends Service { private static final int MSG_SUM = 0x110; public MessageService() { } @Override public IBinder onBind(Intent intent) {...
2018-07-06 10:59:30 228
原创 Binder实现进程间通讯(定义AIDL文件)
Binder实现进程间通讯:服务端:1、新建一个AIDL文件,自定义需要的函数,编译,在gen目录生成同名的Java文件2、新建一个service,内部基于AIDL文件定义一个IBinder对象public class MyService extends Service { public MyService() { } @Override public IBinder on...
2018-07-06 09:59:24 202
原创 单例模式回顾一下?
public class Singleton { //volatile关键字,禁止指令重排序 //因为 instance = new Singleton();的指令有三个: //1、给instance分配内存 //2、调用构造函数初始化成员变量 //3、将instance对象指向分配的内存空间(执行完这步后instance才不为null) //当第三...
2018-07-05 18:14:35 167
转载 Fragment保存数据
public class RotateScreenActivity extends AppCompatActivity { private RestoreDataFragment restoreDataFragment; private Bitmap mBitmap; private DialogFragment dialogFragment; private Im...
2018-07-05 10:17:22 1038
原创 DialogFragment了解一下?
//传统的new AlertDialog在屏幕旋转时,第一不会保存用户输入的值,第二还会报异常,因为Activity销毁前不允许对话框未关闭。// 而通过DialogFragment实现的对话框则可以完全不必考虑旋转的问题public class MyDialogFragment extends DialogFragment { // TODO: Rename parameter ar...
2018-07-04 18:09:12 238
原创 Fragment的回退栈,Activity管理Fragment交互,降低耦合
1、Fragment的回退栈 将当前事务添加到回退栈:transaction.addToBackStack(null); 不考虑回退栈的情况下,FragmentA用replace跳转到FragmentB,FragmentA实例会被销毁,此时按back键,Activity退出。 添加当前事务到回退栈后,FragmentA实例不会被销毁,但视图层次依然会被销毁,此时按back键,回到Fra...
2018-07-04 17:31:34 600
原创 transformNativeLibsWithStripDebugSymbolForDebug,视图状态,Fragment生命周期
1、#ndk.dir=C\:\\Users\\Administrator\\AppData\\Local\\Android\\Sdk\\ndk-bundle ndk.dir=E\:\\android-ndk-r15c-windows-x86_64\\android-ndk-r15c sdk.dir=C\:\\Users\\Administrator\\AppData\\Local\\And...
2018-07-04 15:18:37 334
原创 ContentProvider,ContentResolver,ContentObserver
ContentProvider,ContentResolver,ContentObserverContentProvider:/** * Created by Administrator on 2018/6/26. */public class ConstantData { public static final String DATABASE_NAME = "person.db"; ...
2018-06-27 08:56:09 499
原创 Android Studio上传代码到码云
Android Studio上传代码到码云步骤:1、在码云上新建项目,并复制下载URL2、Android Studio菜单栏 VCS -》import into Version Control -》Create Git Repository -》选择你要上传的代码3、你的项目右键Git->Add,添加完成后,选择右上角的VCS(Commit Changes),然后就 Commit and P...
2018-06-26 10:57:26 862
原创 手机分辨率,图片加载框架,Service生命周期,LocalBroadcastManager
1、Android手机分辨率适配目录对应表 文件夹 手机分辨率 图标大小 mdpi 320*480 48*48px hdpi 480*800 72*72px xhdpi 720*1080 96*96px ...
2018-06-26 10:55:42 211
原创 面试笔记20180607
1、JVM类加载过程(JVM将.class文件里的类信息加载进内存,并解析成对应的类对象的过程) 加载-- 将不同来源的.class文件通过类加载器加载进内存 验证-- 检验.class文件是否符合JVM的规范(因为有的.class文件可能不是通过javac编译而来的) 准备-- 为类变量分配内存,并赋初值(基本类型的初值为0,引用类型的初值为null,常量的初值为代码中设置的值) ...
2018-06-11 16:29:03 110
原创 Android数据持久化保存--File
//系统清理缓存的时候,内部存储私有目录cache下的文件和外部存储私有目录cache下的文件都被清除//系统清除数据的时候,内部存储私有目录和外部存储私有目录下的文件都被清除//openFileOutput在getFilesDir()目录下打开或者创建文件,文件不存在的时候则创建文件//getFilesDir()目录可以存放持久文件,只要应用不卸载,但是这个目录我们看不见,因为它属于内部存...
2018-06-05 16:04:28 339
原创 Camera与SurfaceView
public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback { private Camera mCamera; private SurfaceHolder surfaceHolder; public MySurfaceView(Context context){ ...
2018-06-05 11:17:09 319
原创 对n个随机排列的十位数,等距离取四个数字出来
题目:对n个随机排列的十位数,等距离取四个数字出来(包括正向间隔1个距离取数、反向1个距离取数、正向2个距离取数和反向2个距离取数。间隔一个数子,称为1个距离,间隔2个数字,称为2个距离。就取这两种距离就够了)。比如给你一个十位数,01 02 03 07 08 09 06 05 04 10(随机排序的),然后按照按照以上说的四种间隔取数,先做“正向间隔1个距离取数”01 03 08 06,02 0...
2018-05-30 18:15:05 430
原创 AES加解密
AES加解密:SecureRandom random = SecureRandom.getInstance("SHA1PRNG");使用SHA1PRNG算法生成AES密钥时,当encodeRules不变时,生成的密钥也是不变的,所以加密和解密之前都需要用SHA1PRNG算法生成AES密钥,然后再来加解密这个SHA1PRNG算法与AES的几种模式并没有什么关系(1)SecureRandom rand...
2018-05-29 17:35:57 981
原创 错误集锦20180522
Error:Could not resolve all files for configuration ':app:huaweiDebugAnnotationProcessorClasspath'.> Could not resolve com.jakewharton:butterknife-compiler:8.8.1. Required by: project :app ...
2018-05-29 17:32:56 723
原创 AsyncTask使用遇到的问题
多进程和多线程学习:--只有自己变优秀了才能遇到更优秀的别人1、问题:如果AsyncTask被声明为Activity的非静态内部类,那么AsyncTask会保留一个对创建了AsyncTask的Activity的引用 如果Activity已经被销毁,AsyncTask的后台线程还在执行,它将继续在内存保留这个引用, 导致Activity无法被回收,引起内存泄露。 解决:在Activity...
2018-05-14 16:20:08 252
原创 Android Studio遇到的一些问题
1、Android Studio打包时遇到的问题: //关闭Android Studio的PNG合法性检查,如果你将jpg的图片直接改后缀名为png的图片并使用,打包的时候会报错: //Error:Execution failed for task ':app:mergeHuaweiCompileOptionsResources'. //Error: java.util.concurr...
2018-05-14 16:17:45 287
原创 react-native学习 npm install出错
1、用npm install --save react-native-deprecated-custom-components 时报如下错误:npm ERR! path E:\ASWorkspace\RNHelloWorld\node_modules\immutablenpm ERR! code ENOENTnpm ERR! errno -4058npm ERR! syscall renamenp...
2018-05-14 16:16:25 1785
原创 FileProvider配置
//:/data/user/0/com.example.fileproviderdemo/cache Log.i("wanlijun","getCacheDir:"+getCacheDir().toString()); //:/data/user/0/com.example.fileproviderdemo/files ...
2018-03-20 18:05:01 1209
原创 AES的两种加解密方式
package com.example.fileproviderdemo;import android.content.Intent;import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;...
2018-03-20 18:02:57 2848
原创 Android6.0动态权限申请
Android6.0需动态申请的权限:group:android.permission-group.CONTACTSpermission: android.permission.WRITE_CONTACTS android.permission.GET_CONTACTS android.permission.READ_CONTACTS group:android.pe...
2018-03-19 15:32:07 194
原创 AIDL实例解析
AIDL:1、新建一个服务端项目,app目录右键New->AIDL->AIDL file,重命名aidl文件名2、在aidl文件的接口里声明方法 //接口和方法声明都不用public,方法加入public会提示错误 String teleplay();3、编译工程,在app/build/generated/source/aidl/debug会生成一个同名的java文件4、新建...
2018-03-16 15:27:27 332
原创 JNI开发注意事项
JNI开发注意事项1、包含native方法的java类写在src/main/java/包名目录下2、用javac HelloJni.java生成class文件,用javah -classpath E:\ASWorkspace\LoadImage\app\src\main\java 包名.HelloJni生成.h头文件3、在src/main目录下新建一个jni目录,将生成的HelloJni.h文件...
2018-03-16 10:41:15 266
原创 NDK and JNI
1、新建一个Java类,定义一个native方法public class HelloJni { public native void printJni(); public static void main(String[] args){ }}2、将Java类编译成class字节码文件 javac HelloJni.java3、利用class文件生成本地头文件(最后一个参数为完...
2018-03-15 17:48:57 121
原创 Android开发笔记20180315
Android开发笔记--在山的那边海的那边有一群蓝精灵,她们可爱又机灵,我却蠢又笨1、Android全面屏适配: 一般手机的屏幕纵横比为16:9(1080*1920),Android默认最大的屏幕纵横比为1.86,小于全面屏的屏幕纵横比, 不适配全面屏的APP在上下就会留有空间,显示为黑条。 官方适配方案: <meta-data android:name="android...
2018-03-15 15:29:00 140
原创 JavaScript学习
先学JS,再学jQuery,不学Angular:1、解决中文乱码:<meta charset="utf-8"/>2、适配移动端:<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>3...
2018-03-15 15:27:19 202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人