
Android
文章平均质量分 65
zjpp2580369
这个作者很懒,什么都没留下…
展开
-
TextureView与SurfaceView
应用程序的视频或者opengl内容往往是显示在一个特别的UI控件中:SurfaceView。SurfaceView的工作方式是创建一个置于应用窗口之后的新窗口。这种方式的效率非常高,因为SurfaceView窗口刷新的时候不需要重绘应用程序的窗口(android普通窗口的视图绘制机制是一层一层的,任何一个子元素或者是局部的刷新都会导致整个视图结构全部重绘一次,因此效率非常低下) 因为Surfac...原创 2018-09-17 17:07:14 · 4447 阅读 · 0 评论 -
监听器
基于监听接口的事件处理Android提供的基于事件监听接口有OnClickListener、OnLongClickListener、OnFocusChangeListener、OnKeyListener、OnTouchListener、OnCreateContextMenuListener等。OnClickListener接口:该接口处理的是点击事件。在触摸模式下,是在某个View上按下并...原创 2018-10-08 11:06:31 · 6479 阅读 · 0 评论 -
在非UI线程使用Handler
在非UI线程使用Handler进行线程通信时,一般都需要进行3个步骤:创建Looper Looper.prepare() (创建了一个Looper和MessageQueue)创建Handler Handler启动消息循环 Looper.loop()如果你不带参数实例化:Handler handler=new Handler();那么这个会默认绑定当前线程的Looper。一...原创 2018-10-19 15:51:54 · 927 阅读 · 0 评论 -
android消息循环机制
Android的消息循环是针对线程的,每个线程都可以有自己的消息队列(MessageQueue)和消息循环(Looper)。但是创建的工作线程默认是没有MessageQueue和Looper的,通过Looper.myLooper()得到当前线程的Looper对象,通过Looper.getMainLooper()得到当前进程的主线程的Looper对象。...原创 2018-10-16 22:15:45 · 367 阅读 · 0 评论 -
Tips
Android截图方法:https://blog.youkuaiyun.com/yuehenhn/article/details/51560229原创 2018-11-14 09:28:32 · 167 阅读 · 0 评论 -
Bitmap
Bitmapbitmap基本概念bitmap是Android系统中的图像处理的重要类之一通过bitmap我们可以获取图片的相关信息bitmap文件图像效果好就需要占用越大存储空间Bitmap的加载方式:BitmapFactory.decodeBetyArray();//字节数组BitmapFactory.decodeFile();//文件路径BitmapFactory.d...原创 2018-11-14 10:23:48 · 288 阅读 · 0 评论 -
andorid输入输出流
流stream:任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。我们经常使用的stream基本上都是从这两个类继承而来:Inputstream和OutputstreamI/O流的类型:字节流和字符流字节流:以字节为单位向stream中写入或者从stream中读取。一般的二进制数据都使用字节流,比如声音和图像等字符流:以Unicode字符为单位向stream中写入或者从strea...原创 2018-11-14 16:26:33 · 320 阅读 · 0 评论 -
File类
一、Android File类的使用File文件的存储需要在程序中使用sdcard进行数据的存储,需要在AndroidMainfset.xml文件中进行权限的配置:SDCard中创建与删除文件权限:android.permission.MOUNT_UNMOUNT_FILESYSTEMSSDCard写入数据权限:android.permission.WRITE_EXTERNAL_STOR...原创 2018-11-21 09:50:04 · 166 阅读 · 0 评论 -
ANR
ANR(Application Not Responding)ANR定义:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让用户每次都要处理这个对...原创 2018-11-21 10:46:15 · 129 阅读 · 0 评论 -
Android中关于log的几种区别
Android Logcat使用起来可以方便的观察调试内容Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("","");Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择Log.i的输出为绿色,一般提示性的消息information,它不会输出Log...原创 2018-11-21 16:58:37 · 1941 阅读 · 0 评论 -
volatile
一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,就具备了两层语义:保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的禁止进行指令重排序//线程1boolean stop = false;while(!stop){ doSomething();} //线程2stop = true;...原创 2018-11-22 14:08:03 · 155 阅读 · 0 评论 -
ADB
ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备.ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.Android无数据线调试方法将pc机和android设备连到同一网段获得Android设备的IP地址使用PC机控...原创 2018-11-18 12:59:02 · 195 阅读 · 0 评论 -
location,locationManager
使用这句话后打开app一直弹出对话框询问能否给权限,但是一直点运训也没用,location始终为null。最后只能强制关机。原创 2019-01-14 13:52:31 · 362 阅读 · 0 评论 -
获得sha1值
原创 2019-03-24 15:15:49 · 133 阅读 · 0 评论 -
final关键字
Java中,使用Final修饰一个变量,是引用不能变,还是引用对象不能变?是引用对象的地址不能变,引用变量所指的对象的内容可以改变。比如: final StringBuffer sb=new StringBuffer(“abc”);对sb重新赋值 sb=new StringBuffer(“cde”);会出现编译错误,被final修饰的变量是不能重新赋值的;即该引用指向的地址不会改变。但是...原创 2019-06-25 11:02:13 · 112 阅读 · 0 评论 -
Context
Android应用程序会在如下的几个时间点创建上下文Context创建Application创建Activity创建Service当应用程序第一次启动时,Android系统都会创建一个Application,同时创建Application Context,所有的组件都共同拥有这样一个Context对象,这个应用上下文对象贯穿整个应用进程的生命周期,为应用全局提供了功能和环境指出。...原创 2018-09-28 10:43:15 · 120 阅读 · 0 评论 -
内部存储、外部存储
内部存储: 如果想将文件存储于内部存储中,那么文件默认只能被你的应用访问到,且一个应用所创建的所有文件都在和应用包名相同的目录下。应用创建于内部储存的文件,与这个应用是关联起来的。当一个应用卸载之后,内部存储中的这些文件也被删除。从技术上来讲如果你在创建内部存储文件的时候将文件属性设置成可读,其他app能够访问自己应用的数据,前提是他知道你这个应用的包名,如果一个文件的属性是私有(private...原创 2018-09-14 17:58:22 · 571 阅读 · 0 评论 -
android实时视频网络传输方法
以320×240大小的视频传输为例|方案 |压缩率| 压缩/传输方式|实时性|平均流量消耗|传输距离| 方案 压缩率 压缩/传输方式 实时性 平均流量消耗 传输距离 用camera的回调函数发送原始的yuv420数据 0 无压缩,按帧传输 高(20~30fps) 很高(6...原创 2018-09-19 19:29:37 · 2825 阅读 · 0 评论 -
Surface
Surface对应了一块屏幕缓冲区,每个window对应一个Surface,任何View都要画在Surfae的Canvas上。传统的view共享一块屏幕缓冲区,所有的绘制必须在UI线程中进行。Surface中的Canvas成员,是专门用于供程序员画图的场所,就像黑板一样;其中的原始缓冲区是用来保存数据的地方;Surface本身的作用类似于一个句柄,得到了这个句柄就可以得到其中的Canvas、原始...原创 2018-09-18 08:59:23 · 479 阅读 · 0 评论 -
SurfaceTexture
SurfaceTexture从android 3.0(API level 11)加入。和SurfaceView不同的时,它对图像流的处理并不直接显示,而是转为GL外部纹理,因此可用于图像流数据的二次处理(如Camera滤镜,桌面特效等)。比如Camera的预览数据,变成纹理后可以交给GLSurfaceView直接显示,也可以通过SurfaceTexture交给TextureView作为View h...原创 2018-09-18 18:38:47 · 1481 阅读 · 0 评论 -
ams,wms,sf,app(有机会看)
https://blog.youkuaiyun.com/jinzhuojun/article/details/37737439https://blog.youkuaiyun.com/itachi85/article/details/78186741原创 2018-09-18 20:28:37 · 1087 阅读 · 0 评论 -
Android样式的开发:SELECTOR篇
selector标签,可以添加一个或多个item子标签,而对应的状态是在item标签中定义的。定义的xml文件可以作为两种资源使用:drawable和color。作为drawable资源使用时,一般和shape一样放于drawable目录下,item必须指定android:drawable属性;作为color资源使用时,则放于color目录下,item必须指定android:color属性。可...原创 2018-09-13 22:14:17 · 228 阅读 · 0 评论 -
Android样式的开发:SHAPE篇
一般用shape定义的xml文件存放在drawable目录下,若项目没有该目录则新建一个,而不要将它放到drawable-hdpi等目录中。 使用shape可以自定义形状,可以定义下面四种类型的形状,通过android:shape属性指定: - rectangle:矩形,默认的形状,可以画出直角矩形、圆角矩形、弧形等 - oval:椭圆形,用得比较多的是画正圆 - line:线形,可...原创 2018-09-14 10:48:04 · 248 阅读 · 0 评论 -
uses-feature 和 uses-permission
uses-permission 像是一个权限助手,帮助app去向用户请求app需要使用的权限。 uses-feature的作用更像是一个过滤器,google play 商店会根据该标签来过滤设备。比如说,app用到了相机的功能,用户可以在uses-feature 中定义一个照相机的功能,但是这个时候app并没有去请求系统赋予该app照相机权限,想要正常使用照相机的话,还需要在uses-per...转载 2018-07-31 10:58:16 · 311 阅读 · 0 评论 -
Activity生命周期
注意:生命周期函数不是由程序员调用的,它是由安卓操作系统调用的Activity对象的状态:转载 2018-07-30 16:39:00 · 210 阅读 · 0 评论 -
LinearLayout(线性布局)
等比例划分水平或者竖直方向: 等分水平方向:将layout_widht属性设置为0dp,接着为weight设置比例 同理竖直方向:将layout_height属性设置为0dp,接着为weight设置比例...转载 2018-07-31 13:52:32 · 362 阅读 · 0 评论 -
RelativeLayout(相对布局)
http://www.runoob.com/w3cnote/android-tutorial-relativelayout.html根据父容器来定位: 想位于哪,哪个属性就设置为true 左对齐:android:layout_alighParentLeft 右对齐:android:layout_alighParentRight 顶端对齐:android:layout_alighPa...转载 2018-07-31 19:58:15 · 268 阅读 · 0 评论 -
FrameLayout(帧布局)
FrameLayout(帧布局)可以说是六大布局中最为简单的一个布局,这个布局直接在屏幕上开辟出一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式却没有任何的定位方式,所以它应用的场景并不多;帧布局的大小由控件中最大的子控件决定,如果控件的大小一样大的话,那么同一时刻就只能看到最上面的那个组件。后续添加的控件会覆盖前一个。虽然默认会将控件放置在左上角,但是...转载 2018-07-31 20:23:38 · 1804 阅读 · 0 评论 -
Handler
相关名词: UI线程:就是我们的主线程,系统在创建UI线程的时候会初始化一个Looper对象,同时也会创建一个与其关联的MessageQueue Handler:作用就是发送与处理信息,如果希望Handle正常工作,在当前线程中要有一个Looper对象 Message:Handle接收与处理的消息对象 MessageQueue:消息队列,先进先出管理Message,在初始化Looper...原创 2018-07-30 19:24:10 · 3646 阅读 · 1 评论 -
Manifest.permission
VIBRATE 允许访问的振动器。 防护等级:正常 恒定值:”android.permission.VIBRATE”INTERNET 允许应用程序打开网络套接字 防护等级:正常 常量值:“android.permisson.INTERNET”ACCESS_WIFI_STATE 允许应用程序访问有关wifi网络的信息 防护等级:正常 恒定值:”android.permiss...原创 2018-09-14 13:36:04 · 656 阅读 · 0 评论 -
Android平台架构
原创 2018-09-19 16:26:34 · 146 阅读 · 0 评论 -
Android applicationId与包名的区别
应用ID与包名区别每个Android应用都有一个唯一的应用ID.在Android设备和市场上,这个ID是你应用的唯一标识.若想在市场上更新应用,新应用的ID必须和原来apk的应用ID一致.所以一旦发布了应用,就不能再改变应用ID.在Eclipse中没有applicationId这个概念,在Eclipse中applicationId即等同于包名。但是到了Android Studio中,这两个概念...原创 2019-08-03 16:35:57 · 253 阅读 · 0 评论