自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 Dagger2入门

1.@Conponent@Component(modules = MainSurfaceViewModule.class)public interface MainSurfaceViewComponent { void inject(MainSurfaceView mainSurfaceView);}2.@Module@Modulepublic class M...

2018-06-08 11:30:48 164

原创 自定义混淆Jar包

1.新建library2.配置library的gradledef SDK_BASENAME = "mylibs"; def SDK_VERSION = "_v1.0"; def sdkDestinationPath = "build/outputs/jar/"; def zipFile = file('build/intermediates/bundles/release/..

2018-06-08 09:28:32 497

原创 OpenGL 之 着色语言

数据类型总的来说,数据类型分为标量,向量,矩阵,采样器,结构体以及数组等几类。 详细来说,分为内建的原生数据类型以及构建数据类型,如:浮点型(float),布尔型(bool),整型(int),矩阵型(matrix),向量型(vec2、vec3)等。1、标量:bool,int,float 2、向量: vec2:包含两个浮点数的向量 vec3:包含三个浮点数的向量 vec4:包含四个

2018-01-12 10:31:18 271

原创 OpenGL 之 纹理贴图

概念1、图元:其实就是SurfaceView 2、纹理映射:为图元每个顶点指定纹理坐标,通过纹理坐标在纹理图确定纹理区域,最后将纹理区域的内容映射到图元上 3、纹理采样:图元上的每个片元在片元着色器根据纹理坐标的易变变量,从纹理图中提取对应位置颜色的过程 4、纹理图片:宽高必须是 2的n次方 5、多重纹理:对同一个图元采用多幅纹理图核心函数1、glGenTexture

2018-01-09 10:59:07 2026

原创 OpenGL 2.0 之 裁剪与测试

剪裁测试基本原理:用于渲染时限制绘制区域,通过此技术可以再屏幕(帧缓冲)指定一个矩形区域。启用剪裁测试之后,不在此矩形区域内的片元被丢弃,只有在此矩形区域内的片元才有可能进入帧缓冲。因此实际达到的效果就是在屏幕上开辟了一个小窗口,可以再其中进行指定内容的绘制。核心代码如下:GLES20.glEnable(GLES20.GL_SCISSOR_TEST);//启用剪裁测试GLES20.g

2018-01-08 16:57:59 2202

原创 OpenGLES

构造方法中初始化顶点和纹理public voiid initVertexData(){ float vertices[] = {顶点数 * 3};//顶点坐标 float buffer1 = CreateBuffer(buffer1,vertices); float texCoor[] = {对应顶点坐标 * 3};//纹理坐标 float buffer2 = Cre

2017-12-19 17:52:59 257

原创 逻辑分析(1)

项目整体框架是用RadioGroup显示四个不同的Fragment,HomeFragment,GoodsFragment,ShoppingCarFragment,MeFragment HomeFragment整体框架是套着PullToRefresh的垂直的线性布局,依次是TitleBarFragment,ViewPager,LinearLayout,LinearLayout,GridView。

2017-12-01 21:39:58 190

原创 常见面试题

单线程模型汇中Messgae、Handler、MessageQueu,Lopper之间关系 a) Looper。Prepare,初始化lopper,放入ThreadLocal中 b) Looper。Loop不断遍历MessagrQueue c) Handler创建依赖Looper,Handler。sendMessage到Queue,looper不断从queue去消息,然后回调handle

2017-11-16 00:20:03 187

原创 adb常用指令

maxvideo –fps mount -o remount /system将缓存区的数据同步到系统硬盘 sync提取文件 adb pull /sdcard/1_tianshuang/front_back_lut_image.tsh ./删除文件 adb shell rm /sdcard/1_tianshuang/front_back_lut_image.tsh查看正在运行的模拟器 adb

2017-11-10 10:10:15 187

原创 Android应用权限

开发Android应用时要在AndroidManifest.xml添加一些权限,但不是所有的权限都能被用户应用(UserApplication)使用,有些只能被系统应用(SystemApplication)使用。如果用户应用使用了权限,那么就会出现类似这样的错误信息: Not granting permission android.permission.INTERNAL_SYSTEM_WINDOW

2017-11-10 09:13:32 430

原创 Android系统设置选项的包名

以com.android.settings开头的形式:com.android.settings.Settings 手机系统设置 com.android.settings.WirelessSettings 无线和网络设置 com.android.settings.AccessibilitySettings 辅助功能设置 com.android.settings.ActivityPicker

2017-11-09 18:20:05 4599 1

原创 回调接口

A调用B的方法,传个参数过去 B调用A的方法,传个参数过去,A的方法称作回调方法,参数称作要监听的对象的数据,也可以称作监听后的结果

2017-10-31 10:29:30 229

原创 Application和四大组件启动时的方法顺序

以下顺序不考虑跳转情况Application 的 attachBaseContextContentProvider 的 onCreateApplication 的 onCreate 和 Provider 的 call方法Activity、Service 等的 onCreate(Activity 和 Service 不分先后)以及 BroadcastReceiver 的 onReceive 方法;

2017-10-28 09:45:22 491

原创 openGl2.0 3D

ShaderUtil:将着色器sh脚本加载进显卡编译 Activity主控制类:创建SurfaceView对象,然后调用setContentView跳转到相关界面 Triangle:初始化顶点数据,初始化着色器,设置相应的平移矩阵及旋转矩阵 SurfaceView:显示3D场景,创建渲染器Renderer 顶点着色器:顶点变换,纹理坐标变换 片元着色器:纹理的访问,颜色的汇总,以及雾效等操

2017-10-27 10:14:06 367

原创 jni

1、jni要先加载库static { System.loadLibrary("globalkeyif_jni"); }2、找方法public native int SetListener(JGlobalKeyIFEventListener listener,int iParam);

2017-10-27 09:20:29 259

原创 RadioButton

1.RadioButton一定需要分组,界面上有可能出现多组RadioButton,使用RadioGroup 2.RadioGroup是一个布局,继承于LinearLayout默认垂直排列,但是可以修改orientation//xml : android:checked 默认是否被选中,有bug//java :ischeck(),setCheck(); 使用java代码来做默认值,没有bug监

2017-10-16 11:00:47 238

原创 EditText

EditText属性digits :只允许输入的属性 inputType :数字型(自动弹出软键盘)、密码型(自动隐藏) hint :提示 textColorHint :提示字体颜色 imeOption :设置回车键的样式 maxLength :最大的字符个数获取焦点1.xml : 在EditText标签中加入标签 2.java : 用EditText的实例去调用reques

2017-10-16 10:59:25 310

原创 Toast

监听返回键//当用户点击返回键,自动调用该方法 public void onBackPressed(){}关闭Activity调用finish()方法关闭当前Activity , 如果当前Activity不是主活动,那么将返回到调用它的那个Activity显示Toast使用静态方法创建吐司对象,调用show方法展示到屏幕上Toast toast = Toast.makeText(Context

2017-10-16 10:53:56 294

原创 Activity

Application 应用程序单例模式,表示application是唯一的 每一个应用程序被启动时,就是application被创建 PID:进程的身份标识 UID:用户的身份标识 创建自己的application1.继承Application类 , 初始化构造方法(调用父类的构造方法) 2.在androidManifest.xml的中,使用android:name创建自己的a

2017-10-16 09:28:40 197

原创 事件分发

事件当用户触摸屏幕时,将产生点击事件(Touch事件)。//主要发生的Touch事件有如下四种:MotionEvent.ACTION_DOWN:按下View(所有事件的开始),只有一次MotionEvent.ACTION_MOVE:滑动View,可以有无数次MotionEvent.ACTION_CANCEL:非人为原因结束本次事件MotionEvent.ACTION_UP:抬起View(与D

2017-10-15 15:10:28 326

原创 数据存储

SpUtils/**保存数据**/SpUtils utils = new SpUtils(getContext(), "config");utils.put("shopName", shopBean.getShopName());utils.put("shopId", shopBean.getShopId());utils.put("areaId", shopBean.getAreaId()

2017-10-11 21:44:53 218

原创 百度地图

1.申请密钥cd .androidkeytool -list -v -keystore debug.keystore复制开发版SHA1值 42:28:A5:A3:30:54:7D:71:FA:31:4D:58:4C:8C:5A:45:0F:94:89:89keytool -list -v -keystore 发布版SHA1路径(需要打包生成)输入密钥库口令: 生成APK的第一个密码2E:F8

2017-10-11 14:24:13 263

原创 线程通信

线程 // 解决:分担UI线程耗时任务(修改UI、请求网络) // 子线程写法 1. new MyThread().start(); 2. new Thread(new Runnable).start(); 3. new Timer().schedule(new TimerTask());//Timer 必须销毁Looper子线程解决子线程并不能修改UI

2017-10-11 14:19:27 184

原创 常见错误

//没有引入网络包okiojava.lang.NoClassDefFoundError: okio.Buffer//子线程修改UIandroid.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views./

2017-10-11 14:16:40 1226

原创 系统服务

系统服务 AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE); //获取音乐声音的最大值 //获取当前的音乐值 AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_

2017-10-11 14:15:26 162

原创 网络请求框架

retrofit_okhttppublic class Model { Retrofit retrofit;//需要添加四个依赖库 // OkHttpClient client; //服务器地址 public static final String BASE_URL = "接口-没有/一堆数字"; //public static final String ur

2017-10-11 14:13:16 190

原创 Service

Service启动方式Service引入是为了能够使程序后台运行//第一种启动方式(onCreate--->onStartCommand)context.startService(new Intent(this, MyIntentService.class));//停止服务 (onDestroy)context.stopService(new Intent(this, MyIntentServ

2017-10-11 14:04:19 176

原创 压力测试

1. 将需要测试的页面 设置为首页面2. 在minifest中加入分组 <category android:name="android.intent.category.MONKEY" />3. 在控制台输入adb指令 adb shell monkey -p 当前应用程序的包名 -s 毫秒级时间 -v 测试的次数

2017-10-10 20:31:04 495

原创 ListView组件

// MyListView----MyAdapter----监听Activity布局,listViewlistitem每一项的布局文件listitem每一项的数据自定义适配器Activity添加数据和适配器,并与listView绑定监听setOnItemClickListener

2017-10-10 20:28:21 292

原创 ExpandableListView

在Activity布局文件声明数据源: Map父布局、子布局适配器BaseExpandableListAdapter + 监听setOnChildClickListener + notifyDataSetChanged列表更新数据

2017-10-10 20:27:16 165

原创 ViewPager

自定义ViewPage适配器 PageAdapter FragmentPageAdapter(速度快) FragmentStatePageAdapter(内存大)监听数据源 List<View> List<Fragment>在Activity的布局文件中声明ViewPage(必须是V4包)在Acitivity里绑定Adapter vp.setAdapter(new

2017-10-10 20:24:56 156

原创 Bluetooth蓝牙

获取地理位置权限 private void checkVersion() { //获取蓝牙 //必须要权限, 并且是危险权限 (地理位置 6.0版本之后,必须地理位置的权限)。 //必须要判断用户是否给了权限 //6.0以后,才需要检测权限。 if (Build.VERSION.SDK_INT >= 23) {

2017-10-10 19:02:16 235

原创 广播接收者BroadcastReceiver

广播接收1. 创建BroadcastReceiver,在重写onReceive方法内,接收广播,获取广播中Intent的数据2. 注册BroadcastReceiver // 动态注册 registerReceiver(mbcr,filter); // 静态注册 AndroidManifest.xml注册3. 解除注册 unRegisterReceiver

2017-10-10 18:55:43 185

原创 Fragment

fragment生命周期onCreate过程Activity &&&& onCreateFragment **** onAttachFragment **** onCreateFragment **** onCreateViewFragment **** onActivityCreateonStart过程Activity &&&& onStartFragment **** Starto

2017-10-10 18:01:23 160

原创 Java其他

包装类1.基本数据类型和包装类可以相互转换,两者默认值还不同2.Boolean可以和boolean转换,也可以和String类型转换 (1)和boolean转换:自动装箱、自动拆箱 (2)和String类型转换: 1. 构造方法转换:Boolean b = new Boolean(“true1”);转换成功返回true,反之,返回false 2.

2017-10-05 17:29:31 131

原创 异常

异常概念1.程序不管产生什么异常都会导致程序中断return,这就需要我们去处理异常,保证程序能运行到最后,保证了程序的健壮性,runtimeException可以不用处理,程序不会报错,但还是会中断2.Throwable所有错误以及异常的父类 |-Error |-Exception |-RuntimeException |-NUllPointExc

2017-10-05 17:23:19 192

原创 IO流

IO流体系(学习构造方法就行)InputStream |-FileInputStream |-DataInputStream |-ObjectInputStream |-ByteArrayInputStreamOutputStream 很少用 |-FileOuterStream |-DataOuterStream |-

2017-10-05 17:19:15 228

原创 Java三大特点

封装1.封装又叫隐藏实现,隐藏属性、方法和方法实现过程,一般是将成员属性私有化,并对外提供set和get方法2.权限修饰符:private(本类访问) < default(同包访问) < protected(不同包的子类访问) <public(不同类访问)3.关联(聚合(set方法修改名称)、组合(构造方法传递名称))、依赖(方法参数、方法返回值)4.练习题: 1.Calendar日历类用法

2017-10-05 17:09:29 374

原创 常用快捷键

常用快捷键a) Alt+/ 代码提示 b) Ctrl+shift+s 保存 c) Ctrl+shift+f 美观 d) Ctrl+shift+O 快速导包 e) Ctrl+1 快速修复 f) Ctrl+O 快速找方法 g) Shift+alt+S 快速生成set、get方法 h) 花括号后

2017-08-12 11:19:46 163

原创 变量、数据类型和运算符

变量、数据类型和运算符 a) int 类型 ,4个字节,32位,-2147483648 – 214748364 b) char类型,根据编码格式计算的(GBK,GB2312,UTF-8) c) 数组、对象必须初始化 d) 变量要先声明后赋值再使用 e) 变量有生命周期,在同一生命周期内不允许重名 f) 变量名存放的是地址,地址指向内存中的一片空间,数据存放

2017-08-12 11:10:02 154

空空如也

空空如也

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

TA关注的人

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