Android-APK
文章平均质量分 81
Bing0lin
零散知识记录
展开
-
AudioTrack 播放wav音频文件
AudioTrack 播放wav音频文件转载 2022-10-18 21:13:39 · 299 阅读 · 0 评论 -
CameraX新版(1.2.0-alpha02) + OpenGL实现相机预览
新版CameraX + OpenGL实现摄像头预览转载 2022-06-10 11:50:19 · 1944 阅读 · 1 评论 -
Android使用MediaExtractor读取媒体信息
Android使用MediaExtractor读取媒体信息RefrenceAndroid 判断字符串是否为url用来测试的在线小视频url地址Source Codepublic class BottomActivity extends AppCompatActivity { private static final String TAG = "BGBottomActivity"; private TextView tvInfo; private Butt原创 2021-06-29 12:08:27 · 620 阅读 · 0 评论 -
Handler、HandlerThread理解
Refrencehttps://blog.csdn.net/bukker/article/details/80601779Handler在android线程编程中非常常见。线程中的handler使用原理:每个线程只有一个Looper来管理消息队列,handler在使用的时候需要绑定到对应的Looper上。Handler给自己绑定的Looper不断的发送消息,Looper来做死循环来不断读取MessageQueue队列中的消息,发送给handler来进行处理。Android的UI是运行在主线程中,主转载 2021-07-27 21:24:24 · 543 阅读 · 0 评论 -
从Handler.postDelayed来看看Android怎么实现处理延时消息
Refrencehttps://blog.csdn.net/ly502541243/article/details/108868731前言Android的消息机制之前有一篇文章有写,里面具体讲到了Handler怎么发送和处理消息的整个过程。感兴趣的同学可以先跳转过去看看 从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)延时操作通常要实现延时操作有这几种方法:TimerTaskRxjavaThreadHandler这里转载 2021-07-27 12:04:11 · 547 阅读 · 1 评论 -
一个线程可以有几个Looper?几个Handler?从Looper.prepare()来看看关于Looper的一些问题
Refrencehttps://blog.csdn.net/ly502541243/article/details/87475229前言之前我有篇文章里面写到了Android的消息机制,Handler发送消息的一些原理:从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)在消息机制里面,有一个非常重要的东西,那就是Looper,Looper的作用主要是从消息队列里面取出消息交给Handler处理,不过不仅限于此,在这里面还有很多东西值得转载 2021-07-27 11:30:37 · 676 阅读 · 0 评论 -
从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
Refencehttps://blog.csdn.net/ly502541243/article/details/52062179Handler每个初学Android开发的都绕不开Handler这个“坎”,为什么说是个坎呢,首先这是Android架构的精髓之一,其次大部分人都是知其然却不知其所以然。今天看到Handler.post这个方法之后决定再去翻翻源代码梳理一下Handler的实现机制。异步更新UI先来一个必背口诀“主线程不做耗时操作,子线程不更新UI”,这个规定应该是初学必知的,那要怎么来转载 2021-07-26 21:15:21 · 378 阅读 · 0 评论 -
HandlerThread的简单分析
Refrencehttps://zhuanlan.zhihu.com/p/22284788前言前几天看到一道面试题:Thread、Handler和HandlerThread有什么区别?,这个题目有点意思,对于很多人来说,可能对Thread和Handler很熟悉,主要涉及到Android的消息机制(Handler、Message、Looper、MessageQueue),详见《 从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)》使用方转载 2021-07-26 16:59:11 · 229 阅读 · 0 评论 -
一次临时的异常记录
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[ DexPathList [ [ zip file "/data/app/......-4jXnlKwyOER-SC_UUeeB8w==/base.apk", zip file "/data/app/......-4jXnlKwyOER-SC_UU...原创 2020-03-01 01:31:44 · 307 阅读 · 0 评论 -
[Android] Suggestion: use tools:overrideLibrary="" to force usage
0x00 应用在Android Studio Build的时候,抛出了如下异常:Error:Execution failed for task ‘:app:processDebugManifest’. > Manifest merger failed : uses-sdk:minSdkVersion 8 cannot be smaller than version 9 declared in l转载 2017-03-17 16:53:16 · 747 阅读 · 0 评论 -
MotionEvent中getX和getRawX的区别
0x00OnTouchListener中onTouch回调函数有MotionEvent参数,可以打印出来做对比0x01getX是获取以widget左上角为坐标原点计算的X轴坐标直. getRawX 获取的是以屏幕左上角为坐标原点计算的X轴坐标直.0xff参考:http://blog.csdn.net/lovehong0306/article/details/7451507转载 2017-02-24 15:26:28 · 360 阅读 · 0 评论 -
Frame Animation(逐帧动画)
0x00逐帧动画(Frame-by-frame Animations)从字面上理解就是一帧挨着一帧的播放图片,就像放电影一样。和补间动画一样可以通过xml实现也可以通过java代码实现。接下来借助目前项目中的一个开奖的动画来总结如何使用0x011.)在res/drawable目录下一个文件lottery_animlist.xml,内容如下:<?xml version="1.0" encoding="转载 2017-02-24 14:54:11 · 636 阅读 · 0 评论 -
Android Studio 2.2.1,2.2.2 编辑build.gradle文件卡
0x00原创 2017-04-02 18:20:54 · 402 阅读 · 0 评论 -
Android中service动态更新UI
0x00据Android API的介绍,service一般是在后台运行的,没有界面的。那么如何实现service动态更新UI界面呢? 例:通过service向远程服务器发送请求,根据服务器返回的结果动态更新主程序UI界面,主程序可实时关闭或重启服务。0x01注册BroadcastReceiver 在主程序activity中注册一个BroadcastReceiver,用于接收Service发布的广转载 2017-02-24 12:41:33 · 3276 阅读 · 0 评论 -
Java二十四中设计模式 之 状态模式
0x01 在不同的状态下,对同一行为有不同的响应。状态模式把对象的行为包装在不同的状态中,每一个状态的对象都有一个相同的抽象状态基类,并实现基类对应的方法。这样当一个对象的状态发生改变时,其行为也会随之改变。 个人总结:状态模式的目的就是将对象的状态改变 和 相关状态行为的改变独立封装。0x02State:抽象状态类或者接口,其中的方法表示对应状态下的行为。 StateA、StateB:Sta转载 2017-03-13 19:04:03 · 194 阅读 · 0 评论 -
ListView的Adapter的三种实现方式及性能对比
0x00优化 ≈ 时空转换(时间和空间)时间换空间 时间换时间 空间换时间 控件换空间在我们的算法中就经常遇见这种情况,如果降低算法的时间复杂度,那势必会加大空间的消耗,反之亦然0x01方式一:public View getView(int position, View convertView, ViewGroup parent) { View view = View.infl转载 2017-04-02 08:44:14 · 489 阅读 · 0 评论 -
Android侧滑栏无法滑动收起的解决
DrawerLayout要求Content View必须是DrawerLayout的第一个Child View,左侧滑动出现/隐藏的MenuView必须是DrawerLayout的最后一个Child View。并且需要给滑动出现View添加android:layout_gravity=”start”或者android:layout_gravity=”end”属性。如果滑动出现的Child View不转载 2017-04-02 10:21:34 · 551 阅读 · 0 评论 -
获取未安装的APK图标、版本、包名、名称、是否安装、安装、打开
0x000xFF参考: http://blog.csdn.net/giantgreen/article/details/35796045?utm_source=tuicool&utm_medium=referral转载 2017-04-02 10:37:13 · 464 阅读 · 1 评论 -
AudioTrack: AudioFlinger could not create track, status: -32
AudioTrack: AudioFlinger could not create track, status: -32Refrencewhat status -32 mean?Refrencehttps://stackoverflow.com/questions/54877969/audiotrack-audioflinger-could-not-create-track-status-32...翻译 2019-07-08 18:00:47 · 3106 阅读 · 0 评论 -
BroadCastReceiver无法接收到广播的一种可能
0x000x01广播接收器如果在activity中注册,则它跟随着activity的生命周期,在onCreate()方法里进行注册,在onDestroy方法里进行销毁,则只要这个Activity被创建了,并且即使在后台运行,也没有被Destroy,则该广播接收器就一直能接收广播,反之,则无法接收广播。 另外,我们需要知道的一些知识的: 1.接收广播之后,广播接收器的onReceive()方法是在转载 2017-02-27 21:09:55 · 5129 阅读 · 0 评论 -
runOnUiThread()方法
0x00Activity类的runOnUiThread方法你用过吗,如果你对于Android的Thread+Handler方式感觉繁琐,不妨试试Activity提供的另外一种简单的方法runOnUiThread,runOnUiThread可以帮助你在线程中执行UI更新操作0x01如果你对于Android的Thread+Handler方式感觉繁琐,不妨试试Activity提供的另外一种简单的方法run转载 2017-02-24 12:36:04 · 12855 阅读 · 1 评论 -
自定义Toast悬浮停靠问题
0x00模拟手机位置的桌面悬浮清理内存的效果0x01mParams = new WindowManager.LayoutParams(); mParams.height = WindowManager.LayoutParams.WRAP_CONTENT; mParams.width = WindowManager.LayoutParams.WRAP_C原创 2017-02-24 10:39:21 · 333 阅读 · 0 评论 -
ProgressDialog不能在非主线程中show
0x00子线程下载文件,需要使用ProgressDialog显示下载进度0x01为了保证有网络连接才进行new ProgressDialog的实例对象,因此放在了子线程进行操作,发现在子线程中调用.show()方法时报错,调试后发现子线程无法show,但是可以更新已经show出来的ProgressDialog0xFF 将其放在主线程中show原创 2017-02-14 22:48:01 · 1398 阅读 · 0 评论 -
Android操作SQL数据库
0x00 需要注意,继承了SQLiteOpenHelper的类创建完对象后,被没有立即创建数据库文件,需要调用getWritableDatabase()或者getReadableDatabase()方法后才会创建数据库文件 0x01 常用操作参考:http://www.cnblogs.com/kgb250/archive/2012/08/28/sqlitedatabase.html原创 2017-02-09 20:20:26 · 591 阅读 · 0 评论 -
从ImageView中获取图像转为Bitmap对象
0x00 :0x01 :Bitmap bm =((BitmapDrawable) ((ImageView) image).getDrawable()).getBitmap(); 能提取出Bitmap对象,但是不能不能进行画笔(paint)操作,可以换成这种:Bitmap bm =((BitmapDrawable) ((ImageView) image).getDrawable()).getBitma转载 2017-02-09 20:14:45 · 10054 阅读 · 0 评论 -
Activity onDestroy() 的一个小问题
0x00如果 activity 实现了一个回调接口,然后使用 this 设置给需要回调接口的方法,这种应用场景比较常见,最常见的就是实现 onClickListener 接口,然后 findViewById().setOnClickListenr(this)0x01如果这个回调接口设置到了一个静态对象(单例模式),当 activity finish() 的时候(按返回键,回到桌面),则activit转载 2017-02-27 21:16:47 · 490 阅读 · 0 评论 -
新浪微博 ios/android 你所访问的站点在新浪微博的认证失败 解决方法
0x00一般遇到新浪授权时,没有回调授权页面而是显示如下界面,都是授权回调页搞的鬼。访问出错了! 你所访问的站点在新浪微博的认证失败,请你联系阿k点灯或者稍后再试。 (error:redirect_uri_mismatch)0x01Solution:1.iOS开发 客户端可不填写授权回调页——官方给出的三个sdk,其中第二个sdk默认授权回调页为空,第一个sdk现在[截止到2.13.8.23]不转载 2017-02-27 21:13:10 · 793 阅读 · 0 评论 -
Android中shape中的属性大全
0x00 本文章转接于:http://kofi1122.blog.51cto.com/2815761/5216050x01 Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结:先看下面的代码:转载 2017-02-27 20:42:23 · 1038 阅读 · 0 评论 -
安卓的画图工具
0x00 需求: 根据控件(ImageView)来决定画布的大小(width height)0x01 : 等界面(Activity)加载完成;0x02 参考: http://blog.csdn.net/heng615975867/article/details/9358679 image = (ImageView)findViewById(R.id.ImageView01);原创 2017-02-09 13:40:31 · 469 阅读 · 0 评论 -
android实现简单画图功能
0x00 : 模拟Windows画图软件,简单的画图和颜色选择 0x01 :package com.itheima.scrawl;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import com.itheima.scraw原创 2017-02-09 15:36:38 · 10609 阅读 · 0 评论 -
adb 安装APK
0x000x01错误: INSTALL_FAILED_ALREADY_EXISTS需要使用-r选项错误: inconsistent_certificates需要卸载,一般是因为包名相同0xff 参考:http://blog.csdn.net/yiyaaixuexi/article/details/6251245 http://www.cnblogs.com/easypass/p/5079074.h原创 2017-02-17 18:24:51 · 399 阅读 · 0 评论 -
Android中category所有类型的简介
0x000x01说明 activity 是用户正在浏览的数据的一个可选操作android.intent.category.ALTERNATIVE能够被浏览器安全使用的 activities 必须支持这个类别android.intent.category.BROWSABLE如果 activity 是对数据执行确省动作(点击, center press)的一个选项,需要设置这个类别android.转载 2017-02-18 22:31:08 · 1268 阅读 · 0 评论 -
在Service中获得Context
0x00Service本身就是Context的实现,所以只需要调用this0x010x02Context是一个抽象基类,我们通过它访问当前包的资源(getResources、getAssets)和启动其他组件(Activity、Service、Broadcast)以及得到各种服务(getSystemService),当然,通过Context能得到的不仅仅只有上述这些内容。 对Context的理解可转载 2017-02-18 22:35:20 · 14983 阅读 · 0 评论 -
eclipse查看一个方法在哪里被调用
选中相关函数或者变量,再按ctrl+alt+H原创 2017-02-14 22:42:24 · 5971 阅读 · 0 评论 -
TextView中ellipsize属性
0x00 跑马灯效果显示字体(滚动)中用到0x01extView中可以设置一个ellipsize属性,作用是当文字长度超过textview宽度时的显示方式:例如,”encyclopedia”显示, 只是举例,以实际显示为准:)Android:ellipsize=”start”—–省略号显示在开头 “…pedia” android:ellipsize=”end”——省略号显示在结尾 “encyc…翻译 2017-02-14 22:40:43 · 260 阅读 · 0 评论 -
Android中的自定义属性
0x00对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现: 1. 自定义一个CustomView(extends View )类 2. 编写values/attrs.xml,在其中编写styleable和item等标签元素 3. 在布局文件中CustomView使用自定义的属性(注意namespace) 4. 在CustomView的构造方法中通过TypedArray获取0翻译 2017-02-14 22:37:54 · 185 阅读 · 0 评论 -
setContentView(R.layout.xxx)出错
当提示找不到R文件时 有可能是R文件的包导入错误https://zhidao.baidu.com/question/1860168686220791947.html原创 2017-02-13 23:43:13 · 1583 阅读 · 0 评论 -
子线程更新UI的错误
0x00在子线程设置某个控件的visibility时,系统会判断状态控件与之前的状态是否改变,如果改变才进行UI的操作,否则不会重新设置。 0x01子线程设置visiblility时不一定会报更新错误0xff原创 2017-02-21 11:02:52 · 479 阅读 · 0 评论 -
listview有数据却显示不出来
0x00listview的adapter单独写在一个类中,需要传入list,但是却发现有数据却无法显示,notifyDataSetChanged也没用。0x01调试发现,list并没真正传入,传入之前打印有数据,传入后打印发现并没有,结合指针知识和java的面向对象引用知识,确定是传入list时,对象改变了0xfflist需要使用addALL来操作原创 2017-02-20 20:28:30 · 9022 阅读 · 0 评论 -
android:process设置
0x000x01Android:关于声明文件中android:process属性说明 android:process 服务所在进程的名字。通常,一个应用的所有组件都运行在系统为这个应用所创建的默认进程中。这个默认进程是用这个应用的包名来命名的。 标签的process属性可以设置成和所有组件都不同的默认值。但是这些组件可以通过设置自己的process值来覆写这个默转载 2017-02-28 23:42:06 · 496 阅读 · 0 评论