自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

安卓游戏开发工程师的博客

尽我所能写更多的知识点,学习中...

  • 博客(42)
  • 收藏
  • 关注

原创 Svn、Git

问:项目里用的SVN还是Git?答:svn/git问:代码冲突了怎么办答:改,在AS把冲突的部分解决了再上传,如果没用AS还不是用的SVN,git冲突会包留在文件中,两个部分被===========================分割开,去修改整合就OK了。问:怎么创建分支答:1、SVN的话直接右键选择Team然后选择创建。合并分支,和切换分支直接右键Team选择2、Git的话gi...

2019-11-05 20:24:20 139

原创 Fragment

问:Fragment的懒加载是怎么实现的?(为什么要用懒加载|小亮点)答:1、ViewPager的每一个Fragment都需要通过网络拉取数据加载,而ViewPager是默认加载前两项的,很容易造成网络丢包或者网络堵塞等问题,使用懒加载是非常有必要的。2、在Fragment中有一个setUserVisibleHint这个方法,它优于onCreate()方法,其中的setUserVisibleH...

2019-11-01 20:40:44 176

原创 双亲机制原理和Android类加机制(热更新的机制hotFix\andFix机制)

双亲机制原理ClassLoader使用的是双亲委托模型来搜索类的每个ClassLoader实例都有一个父类加载器的引用(不是继承的关系,是一个包含的关系虚拟机内置的类加载器(Bootstrap ClassLoader)本身没有父类加载器,但可以用作其它ClassLoader实例的的父类加载器。4) 当一个ClassLoader实例需要加载某个类时,它会试图亲自搜索某个类之前,先把这个任务委...

2019-10-28 20:57:34 229

原创 List,Set,Map的区别

Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。 Set接口主要实现了两个实现类:HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快 TreeSet :TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。 List的特征是其元素以线性方式存储,集合中可以存放重复对象。 ArrayList() : 代表长度可以改变得数组...

2019-10-25 20:59:30 143

原创 String为什么要设计成不可变的?

String为什么要设计成不可变的?1、字符串池的需求字符串池是方法区(Method Area)中的一块特殊的存储区域。当一个字符串已经被创建并且该字符串在 池 中,该字符串的引用会立即返回给变量,而不是重新创建一个字符串再将引用返回给变量。如果字符串不是不可变的,那么改变一个引用(如: string2)的字符串将会导致另一个引用(如: string1)出现脏数据。2、允许字符串缓存哈希码 在...

2019-10-24 21:04:28 156

原创 哪些情况下的对象会被垃圾回收机制处理掉?和要判断怎样的对象是没用的对象

哪些情况下的对象会被垃圾回收机制处理掉1.所有实例都没有活动线程访问。2.没有被其他任何实例访问的循环引用实例。 3.Java 中有不同的引用类型。判断实例是否符合垃圾收集的条件都依赖于它的引用类型。要判断怎样的对象是没用的对象1.采用标记计数的方法: 给内存中的对象给打上标记,对象被引用一次,计数就加1,引用被释放了,计数就减一,当这个计数为0的时候,这个对象就可以被回收了。当然,这也就...

2019-10-23 21:03:16 2445 2

原创 java中==和equals和hashCode的区别和进程和线程的区别

基本数据类型的比较的值相等. 类的比较的内存的地址,即是否是同一个对象,在不覆盖equals的情况下,同比较内存地址,原实现也为 == ,如String等重写了equals方法.hashCode也是Object类的一个方法。返回一个离散的int型整数。在集合类操作中使用,为了提高查询速度。(HashMap,HashSet等比较是否为同一个)如果两个对象equals,Java运行时环境会认为他们的h...

2019-10-22 21:01:10 102

原创 Android与服务器交互的方式中的对称加密和非对称加密是什么和设备横竖屏切换。

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次2、设置Activity的android:configChanges=”orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次3、设置Activity的android:configChanges=”orientation|ke...

2019-10-21 21:02:52 299

原创 要做一个尽可能流畅的ListView,你平时在工作中如何进行优化的?

①Item布局,层级越少越好,使用hierarchyview工具查看优化。②复用convertView③使用ViewHolder 减少find view by id④item中有图片时,异步加载 Picasso⑤快速滑动时,不加载图片⑥item中有图片时,应对图片进行适当压缩 Picasso⑦实现数据的分页加载...

2019-10-18 20:36:07 212

原创 Android中touch事件的传递机制是怎样的?

1.Touch事件传递的相关API有dispatchTouchEvent、onTouchEvent、onInterceptTouchEvent2.Touch事件相关的类有View、ViewGroup、Activity3.Touch事件会被封装成MotionEvent对象,该对象封装了手势按下、移动、松开等动作4.Touch事件通常从Activity#dispatchTouchEvent发出,...

2019-10-17 21:10:36 322

原创 音频如何采集

1、在实例化 AudioRecord 时需要指定采集源2、设定为麦克风3、然后指定采样率4、我们公司采用兼容性非常强的 44100Hz 也就是每秒采集 44100 次,5、接着是配置音频通道6、我们团队采用了 AudioFormat.CHANNEL_IN_MONO 代表单通道,当然也是支持双通道立体声采集的,只需传入 AudioFormat.CHANNEL_IN_STEREO 即可7、...

2019-09-29 19:30:18 1329

原创 Android 怎么采集视频、音频(Android直播中怎么采集视频、音频)

1、采集视频的话5.0之前一般用Camera接口,之后用Camera2接口2、使用也很简单,通过 HandlerThread类创建一个专门的Hander 类型的线程用于Camera的具体操作。3、在CameraManager中找到一个合适的 Camera 设备,得到设备号。4、通过 CameraID 得到该设备的各种参数5、调用CameraManager的openCamera()方法打开指...

2019-09-29 19:29:05 828

原创 怎么推流

1、用FFMpeg写推流器推流2、用阿里SDK推流3、用七牛SDK推流4、用FFMpeg写推流器推流实际就是通过JNI调用FFMpge的native函数5、initRtmpData初始化RMTP,建立RTMP与RTMP服务器连接6、sendRtmpVideoSpsPPS发送SPS,PPS数据,包括长度、数据、时间戳7、H.264码流中 SPS是序列参数集Sequence Parameter Set...

2019-09-29 19:24:20 940

原创 可以怎么处理视频

1、GPUImage、OpenGL2、阿里SDK3、七牛SDK

2019-09-29 19:20:37 101

原创 什么是分辨率

1、分辨率:影响图像大小2、与图像大小成正比3、分辨率越高,图像越大4、分辨率越低,图像越小。5、不同分辨率我们公司设置的码率也不同6、360p 800 200 6007、480p 1000 300 7008、540p 1200 400 900 (主流)9、720p 1500 600 1200...

2019-09-29 19:20:06 452

原创 什么是帧率

1、帧率就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,2、帧率:影响画面流畅度,与画面流畅度成正比:3、帧率越大,画面越流畅;帧率越小,画面越有跳动感。4、如果码率为变量,则帧率也会影响体积,帧率越高,每秒钟经过的画面越多,需要的码率也越高,体积也越大。...

2019-09-29 19:19:26 8709

原创 码率是什么?

1、码率:影响体积,与体积成正比2、码率越大,体积越大;码率越小,体积越小。3、码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。4、也就是取样率(并不等同与采样率,采样率的单位是Hz,表示每秒采样的次数),单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件5、但是文件体积与取样率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最...

2019-09-29 19:18:31 11761

原创 kotlin实现黑马外卖首页APP

Fragment代码实现class F1 : Fragment(){ lateinit var ada:ShouyeAda override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { var view ...

2019-09-28 21:39:57 486

原创 Kotlin

创建Kotlin项目:首先我们打开File-New-New project创建普通的java项目流程,在进行到平时我们创建java项目流程的java名称时候,有些同学的版本是可以看到一个Language的选项,点开会有java和kotlin两种模式,我们创建kotlin项目选择kotlin模式,在下面的Minimum API Level中是我们的API版本号,也是可以选择的,选择完毕我们会在下面看...

2019-09-27 21:36:47 1755

转载 观察者和Rxjava

观察者模式在实际项目中使用的也是非常频繁的,它最常用的地方是GUI系统、订阅——发布系统等。因为这个模式的一个重要作用就是解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。以GUI系统来说,应用的UI具有易变性,尤其是前期随着业务的改变或者产品的需求修改,应用界面也经常性变化,但是业务逻辑基本变化不大,此时,GUI系统需要一套机制来应对这种情况,使得UI层与具体的业务逻辑解耦,观察者模式此时就派上...

2019-07-24 21:22:57 85

原创 简单控件实用 接口调用

Kotlin 实现Activity之间的跳转获取id(可省略,直接使用id) private var b1: Button? = null //先声明 b1 = findViewById(R.id.one) as Button //在获取val intent=Intent(this@MainActivity,Main2Activity::class.java)startActivity(i...

2019-07-22 21:33:15 243

原创 观察者和RxJava

/** * 发送第N项数据 * */private static void elementAtOperator() { Observable.just(1,5,7,8,9,52,68) .elementAt(8,78) .subscribe(new Consumer<Integer>() { @Override public void accept(Integer i

2019-07-19 21:42:03 85

原创 Android框架

MVCMVC,Model View Controller,是软件架构中最常见的一种框架,简单来说就是通过controller的控制去操作model层的数据,并且返回给view层展示,具体见下图当用户出发事件的时候,view层会发送指令到controller层,接着controller去通知model层更新数据,model层更新完数据以后直接显示在view层上MVC还有一个重要的缺陷,大家看...

2019-07-18 21:32:02 420

原创 六种特殊的类

嵌套类一个类可以在单独的代码文件中定义,也可以在另一个类内部定义,后一种情况叫做嵌套类,意即A类嵌套在B类之中。乍看过去,这个嵌套类的定义似乎与Java的嵌套类是一样的,但其实有所差别。Java的嵌套类允许访问外部类的成员,而Kotlin的嵌套类不允许访问外部类的成员。倘若Kotlin的嵌套类内部强行访问外部类的成员,则编译器会报错“Unresolved reference: ***”,意思是找不...

2019-07-17 21:18:55 115

原创 自定义View

1.测量——onMeasure():决定View的大小2.布局——onLayout():决定View在ViewGroup中的位置3.绘制——onDraw():如何绘制这个View。Measure():Measure的中文意思就是测量。所以它的作用就是测量View的大小。而决定View的大小只需要两个值:宽详细测量值(widthMeasureSpec)和高详细测量值(heightMeasure...

2019-07-15 21:09:34 78

原创 Kotlin高阶函数与 lambda 表达式

fun myApplay(){ val task = Runnable { println("正在运行") } Thread(task).apply{ setDaemon(true) }.start() val task2 = Runnable { println("runnning") } val thread=Thread(task2) thread.setDaemon(true) thread.start()

2019-07-12 21:36:07 251 1

原创 Kotlin中缀函数 及斐波那契

fun main(arge:Array){中缀函数()函数字面量()println(“斐波那契:”)println(fibo(10))}fun 中缀函数(){val train=“北京” to “天津”var t =“北京”.to(“天津”)println(train)println(t)val train2 = “北京” 到 “天津”println(train2)val...

2019-07-11 21:22:11 225

原创 Kotlin的扩展函数经典

个人分类:android 首先来说说 代码较多 android自带请求方式 HttpURLConnection注意:很多人会不小心加了s所以导致最后请求不下来数据 因为现在大多网址没有加密安全 所以我们就用HttpURLConnection实现思想主要是 HttpURLConnection用IO流配合Handl...

2019-07-10 21:52:43 99

原创 MD5和SHA加密

1.MD5(Message Digest algorithm 5,信息摘要算法)2.SHA(Secure Hash Algorithm,安全散列算法)不同: 1.对强行攻击的安全性:最显著和最重要的区别是SHA-1摘要比MD5摘要长32 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD5是2128数量级的操作,而对SHA-1则是2160数量级的操作。这样,SHA-1对...

2019-07-09 21:16:59 205

原创 IM云信

初始化package com.example.qqq;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import an...

2019-07-08 21:40:38 120

转载 云信

简介网易云通信IM服务基于网易 17 年的 IM 技术积累,致力于打造最稳定的即时通讯平台。 IM 服务提供了一整套即时通讯基础能力,通过该平台服务就可以将即时通讯、实时网络能力快速集成至企业自身应用中。Demo体验Demo 演示了即时通讯场景,包括单聊、群聊、聊天室、在线状态、智能对话机器人等功能,包含 iOS、Android、Windows、PC Web、移动端 Web 五个平台 Dem...

2019-07-05 21:14:54 270

原创 Xutils

Xutils 分为四大模块1.DBUtils:数据库相关2.ViewUtils:控件事件绑定相关3.HttpUtils:网络获取,代替异步(***)4.BitmapUtils:处理图片如何使用:1.导依赖 compile‘org.xutils:xutils:3.3.4’2.加权限,加两个(一个Internet,一个Write...Storage)3.新建类 class MyAppli...

2019-01-14 16:26:55 159

原创 图像处理框架

图像处理框架Picasso.get().load(网址).into();Picasso.get().load(url).placeholder(R.drawable.user_placeholder).error(R.drawable.user_placeholder_error).into(imageView)load(String path):用于下载图片,必须resize(i...

2019-01-11 20:59:26 263 1

原创 适配器和XListView

适配器1.不优化会有什么效果?数据不对(数据在第二页时会发生重复)消耗内存2.如何优化?步骤:1.创建ViewHolder类(属性:和行布局中控件数量一致)类必须叫ViewHolder 是内部类 不能在外建类2.声明ViewHolder对象 例:ViewHolder viewholder;3.if(){实例化viewholder对象的属性}4.绑定 convertView.se...

2019-01-09 21:19:12 98

原创 Handler

什么是Handler?作用:在子线程与主线程之间发送、接受、处理消息一:主线程给子线程发送消息Handler handler = new Handler();Message message = new Message();handler.sendMessage(message);2.子线程Looper.prepare();hander = new Handler(){public...

2019-01-08 19:07:27 77

原创 解析、网络访问方式

什么是解析?对象和Json串的格式转换什么是Json串?特殊格式的字符串({}代表对象,[]数组或集合)应用对象转Json串 Gson gson = new Gson(); gson.toJson(对象);FastJson: String json串 = JSON.toJson(对象);Json转对象/集合Gson: 对象: User u = gson.fromJson(串,...

2019-01-07 20:07:06 148

原创 json

问题:什么是Json?JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。本质:json是有特殊格式的字符串。一.原生解析将对象转为Jason串将Json串解析为对象[]for JsonObject —getString()二.Gson解析将对象转为Json串将Json串解析为对象{} []三.FastJson解...

2019-01-04 20:59:44 131

原创 适配器

spinner 下拉列表框、弹出框属性:赋值(这个值必须在strings.xml中配置好,string-array)例如:entries:=“@array/arr”spinnerMode:“dialog”,“dropdown”popubackbound:加背景色(dropdown)popret:标题(只配合dialog用)事件:setOnItemSelectedListener方法:...

2019-01-03 21:02:57 63

原创 滑动新知识

ScrollView(垂直滚动条)是上下滑动的控件,不能直接包含多个子控件,如果想要显示多个控件,要使用布局控件包装。示例:HorizontalScroView(垂直滚动条)水平滑动的控件,同样不可以包含多个子控件InputStream inputStream=Context.getAssets().open(“sample.txt”)示例代码:字节流读取AssetManag...

2019-01-02 21:02:32 140

原创 Android进阶

RadioButton属性:text = “点击”androif:checked = “true”//默认选中button = “@null”//按钮为空getCheckedRadioButtonId()CheckBox属性: androif:checked = “true”事件 setOnCheckedChangeListener进度条ProgressBar=&quot;&quot; 设置当前进度...

2018-12-29 16:04:26 107

空空如也

空空如也

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

TA关注的人

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