
Android开发
文章平均质量分 50
布里布里左卫门
装逼卖萌,无所不能
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
android studio 打包 jar aar
android studio 打包 jar aar原创 2022-06-23 18:29:59 · 1356 阅读 · 0 评论 -
android ijkplayer 中遇到的问题
在做音频播放的时候,很多公司使用的是开源的ijkplayer播放器,ijkplayer底层是基于ffmpeg,在某机型上面可能常常遇到各种问题。今天整理了大家在使用ijkplayer中遇到的问题,以及根据ijkplayer社区issue和solution方案。如下:1、直播技术总结(三)ijkplayer的一些问题优化记录https://blog.youkuaiyun.com/hejjunlin/arti...原创 2020-04-22 14:28:39 · 2827 阅读 · 0 评论 -
JavaCV + FFmpeg 拉流播放器
一、设计方案一个简单的拉流播放器,需要具备以下功能:将直播流拉取到设备上并展现出来 保证播放当前直播流的音视频是同步的 播放视频时可以切换全屏幕与非全屏二、定义播放器的生命周期在定义播放器的生命周期们需要做到以下两步:1. 先定义一下播放器的事件 2.定义播放器展示的控件1. 定义播放器事件一个播放器,需要定义出来相应的播放器的事件,最基本的播放器的操作就是...原创 2020-03-30 15:53:56 · 2360 阅读 · 0 评论 -
JavaCV 入门
最近工作中因为项目的原因边学边用,接触并使用JavaCV做了一些相关的产品,目前觉得,JavaCV在图形图像(人家本身就是一个视觉库)的功能真的挺强大,而且使用起来避免了复杂的平台处理。下面整理一下对JavaCV库的初步理解。1.JavaCV 简介JavaCV是对各种常用计算机视觉库的封装后的一组jar包,其中封装了FFmpeg、OpenCV等计算机视觉编程人员常用库的接口,可以通过其中...原创 2020-03-30 15:44:59 · 2274 阅读 · 0 评论 -
android 沉浸状态栏
转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/51763825本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新。记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算,那么本篇就给大家带来一次沉浸式状态栏的微技巧讲解。其实说到沉浸式状态栏这个名...转载 2018-10-11 16:01:20 · 254 阅读 · 0 评论 -
RecyclerView 简单使用
这个功能就是使用RecyclerView来实现的,在本系列中,我们将最终制作出这样的一个效果出来。一、导入Support-v7包工欲善其事必先利其器,RecyclerView存在于support-v7包中,我们需要在新建的gradle工程中导入support-v7包:compile 'com.android.support:recyclerview-v7:21.0.3'...转载 2018-09-29 11:10:43 · 395 阅读 · 0 评论 -
android Activity 启动模式 应用场景
栈的原理:先进后出,后进先出。所有操作都发生在栈顶。首先介绍一下任务栈:(1)程序打开时就创建了一个任务栈, 用于存储当前程序的activity,所有的activity属于一个任务栈。 (2)一个任务栈包含了一个activity的集合, 去有序的选择哪一个activity和用户进行交互:只有在任务栈栈顶的activity才可以跟用户进行交互。 (3)任务栈可以移动到后台, 并且保留了每...原创 2018-10-16 15:56:40 · 408 阅读 · 0 评论 -
android 内存优化 (图片篇)一
内存简介:RAM(random access memory)随机存取存储器。说白了就是内存。一般Java在内存分配时会涉及到以下区域:寄存器(Registers):速度最快的存储场所,因为寄存器位于处理器内部,我们在程序中无法控制栈(Stack):存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆(Heap):堆内存用来存放由new创建的对象和数组。在堆中分...原创 2018-10-16 17:19:25 · 255 阅读 · 0 评论 -
android apk 加固
一、前言今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理。现阶段。我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结果被人反编译了,那心情真心不舒服。虽然我们混淆,做到native层,但是这都是治标不治本。反编译的技术在更新,那么保护Apk的技术就不能停止。现在网上有很多Apk加固的第三方平台,最有名的应当属于...转载 2018-10-10 14:33:13 · 562 阅读 · 0 评论 -
android 内存优化(小技巧) 二
日常搜集的一些有关内存优化的小技巧:对常量使用static final修饰符 静态方法代替虚拟方法如果不需要访问某对象的字段,将方法设置为静态,调用会加速15%到20%。这也是一种好的做法,因为你可以从方法声明中看出调用该方法不需要更新此对象的状态。 减少不必要的全局变量尽量避免static成员变量引用资源耗费过多的实例,比如Context因为Context的引用超...原创 2018-10-16 17:50:11 · 251 阅读 · 0 评论 -
android okgo 网络请求框架
OkGo - OkHttpUtils-2.0.0升级后改名 OkGo,全新完美支持RxJava项目地址:https://github.com/jeasonlzy,欢迎star,欢迎issue该库是封装了okhttp的网络框架,可以与RxJava完美结合,比Retrofit更简单易用。支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,可...转载 2018-10-11 10:25:38 · 2215 阅读 · 2 评论 -
android 常用的图片加载框架
主流图片加载框架?1> Picasso2> Glide3> Fresco4> ImageLoader介绍:Picasso:和Square的网络库一起能发挥最大作用,因为Picasso可以选择将网络请求的缓存部分交给了okhttp实现 Glide:模仿了Picasso的API,而且在他的基础上加了很多的扩展(比如gif等支持),Glide默认的...原创 2018-09-07 17:59:48 · 659 阅读 · 0 评论 -
Android WebView与JS交互
1. 交互方式总结Android与JS通过WebView互相调用方法,实际上是:Android去调用JS的代码 JS去调用Android的代码二者沟通的桥梁是WebView对于Android调用JS代码的方法有2种:通过WebView的loadUrl() 通过WebView的evaluateJavascript()对于JS调用Android代码的方法有3种:通过We...原创 2018-09-10 13:52:23 · 286 阅读 · 0 评论 -
Android APP内存优化之图片优化
看到一篇很好的博客,转来看看 网上有很多大拿分享的关于Android性能优化的文章,主要是通过各种工具分析,使用合理的技巧优化APP的体验,提升APP的流畅度,但关于内存优化的文章很少有看到。在Android设备内存动不动就上G的情况下,的确没有必要去太在意APP对Android系统内存的消耗,但在实际工作中我做的是教育类的小学APP,APP中的按钮、背景、动画变换基本上全是图片,在2K...转载 2018-07-18 17:54:10 · 477 阅读 · 0 评论 -
android GreenDao 笔记
手上有一个半自动化的项目,大致是安卓平板和带有wifi热点(只有局域网,没有公网)的板子在scoket下,做一些实时数据的采集,然后在批量上传给服务器。这就意味着要将数据库放到平板这端了。我也就顺其自然的用上了Greendao。。这样不是快点么,我是不想再苦哈哈的写sql了,哈哈哈。。。一、简介GreenDAO是一个开源的安卓ORM框架,能够使SQLite数据库的开发再次变得有趣。它减轻开...翻译 2018-07-23 18:09:39 · 686 阅读 · 0 评论 -
android 自定义View 构造函数怎么样调用
首先自定义View有三个构造方法:public class CustomView extends View { /** * 第一个构造函数 * @param context */ public CustomView(Context context) { super(context,null); } /** *...原创 2018-05-30 10:39:36 · 1278 阅读 · 0 评论 -
android 属性动画
首先为什么要3.0引入属性动画呢?明显是因为传统的补间动画,已经远远满足不了咱们的开发需求了。在为大家介绍属性动画之前,先讲一下补间动画的缺陷:因为补间动画的机制就是使用硬编码的方式实现的,其扩展性极低。总分为以下几点:1.补间动画只能作用于View上2.补间动画改变的只是View 的显示效果而已(位移动画后,View的位置并没发生变化,View的单击事件还在原来的位置)3.补间动画只能对View...原创 2018-05-25 17:17:58 · 357 阅读 · 0 评论 -
android 混淆
五步搞定1打开项目中的proguard-rules.pro,将下面的代码复制进去。我的思路是将混淆分为2个主要部分定制化区域。这里边的内容是我们主要需要补充的部分,大致分为4个小部分,我们接下来的步骤主要是补充这4个部分的东西。 基本不用动区域。顾名思义,基本不用动。这块的内容我已经写好了,除非有特殊的需求,基本不用改动。。。请叫我雷锋。。。。。#----------------...转载 2018-10-10 10:16:04 · 165 阅读 · 0 评论 -
Can’t create handler inside thread that has not called Looper.prepare()
为什么在子线程中创建handler时会报以下错误Can’t create handler inside thread that has not called Looper.prepare() 因为Android系统默认情况下:非主线程中没有开启Looper,而Handler对象必须绑定Looper对象。第二个子线程中注意要加上 Looper.prepare(); Looper.lo...原创 2018-10-10 10:41:40 · 569 阅读 · 0 评论 -
Android Studio NDK开发(二):Welcome to JNI
前言现在我们从零开始NDK开发,本篇博客将介绍如何创建一个native方法,并在Activity中调用。如果大家对于NDK开发的配置不了解的话,可以查看:前一章内容Welcome to JNI1.新建c文件这里我们不使用Android Studio默认创建的C/C++文件native-lib.cpp,鼠标点击cpp文件夹(如果没有可在main文件夹下新建),右击new ->...原创 2019-04-19 16:25:48 · 300 阅读 · 0 评论 -
Android Studio NDK开发(一):准备工作(CMake方式)
前言NDK即Native Development Kit,是Google在Android开发中提供的用于快速创建native工程的一系列工具的集合,帮助开发者快速开发C/C++的动态库,并自动将so和java应用一起打包成apk,极大地减轻了开发人员的打包工作。而我们经常还会听到JNI,那么JNI和NDK之间有什么区别呢?首先JNI即Java Native Interface,是Java语...原创 2019-04-19 16:23:17 · 382 阅读 · 0 评论 -
Fragment 通信
首先列举一下Fragment中可以实现通信的技术:万金油 eventBus rxBus:优点:方便,快捷,简单缺陷:1.反射,性能打折,效率低2.代码维护困难3.数据无法返回,单向传送handler缺点:1.耦合2.无法获取activity的返回结果3.内存泄漏static静态变量,内存消耗广播缺陷:1.性能差,延迟...原创 2019-03-19 11:30:06 · 282 阅读 · 0 评论 -
Genymotion 下载安装及常见问题
原文:https://blog.youkuaiyun.com/yht2004123/article/details/80146989一、注册\登录打开Genymotion官网,https://www.genymotion.com/,首先点击右上角的Sign in进行登录操作。如何登录就不细讲了,下面讲一下如何注册(备注:注册按钮在登录界面中)。注册如果没有账号,则需要先注册。在登录界面,...转载 2019-03-25 11:47:06 · 613 阅读 · 0 评论 -
webRTC 源码 编译
目录编译环境搭建 代码同步 编译参数配置 源码编译 踩过的问题 总结一、编译环境搭建首先,WebRTC源码编译,官方也说明得很清楚,只能在Linux平台进行编译(笔者在mac os 编译过,后来因为缺少arm架构等编译依赖文件放弃,具体参考官网),这里笔者使用时ubutun 14.0.1 + vmware。当然,这整个过程中,翻墙是不可缺少的,具体可以参考笔者的博客《sha...原创 2018-12-15 18:30:38 · 2574 阅读 · 0 评论 -
android waiting for debugger
log日志中出现:Application XXX is waiting for the debugger to attach,这时项目就会停留在android waiting for debugger的页面,既不能正常运行,也不能进入调试模式。解决办法:1.dos命令adb kill-serveradb start-server两个命令操作之后偶尔会有效(进入调试状态)...原创 2018-12-04 14:37:58 · 527 阅读 · 0 评论 -
android .so深入理解 abiFilters的使用等
为什么使用soso机制让开发者最大化利用已有的C和C++代码,达到重用的效果,利用软件世界积累了几十年的优秀代码; so是二进制,没有解释编译的开消,用so实现的功能比纯java实现的功能要快; so内存分配不受Dalivik/ART的单个应用限制,减少OOM; 相对于java代码,二进制代码的反编译难度更大,一些核心代码可以考虑放在so中。 说起.so文件就必须提一下arm64、...原创 2018-11-21 20:11:57 · 4095 阅读 · 0 评论 -
android studio module 导入本地aar
最近在做apicloud原生模块开发,去网上扒下来点demo,看着文档,实现了webRTC音视频通话(点对点通话)。原生很好实现,放到模块里就开始各种踩坑了。里面用到了一个aar的包,当时由于一些bug,导致自己怀疑aar的导包方式有问题。所以就去apicloud的论坛寻找较官方的解决办法。(至于什么bug我下篇文章给大家分享。。)apicloud 官方对这个aar的解释可以说是很少了。...原创 2018-11-21 19:53:33 · 1753 阅读 · 0 评论 -
android 单例模式
设计模式的分类25种总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。...原创 2018-10-10 16:58:19 · 214 阅读 · 0 评论 -
Java中的23种设计模式详解
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理...转载 2018-10-10 16:18:33 · 454 阅读 · 0 评论 -
android webRTC 译文
Android WebRTC 介绍 译者说明由于译者水平有限,翻译尽量遵从原意,一些地方有错误敬请指教。发布在这里原文https://tech.appear.in/2015/05/25/Introduction-to-WebRTC-on-Android/翻译WebRTC被称为开源网络发展的又一大里程碑,被看作为近些年对Web标准的最重要的创新。WebRTC允许开...转载 2018-10-10 10:47:19 · 433 阅读 · 0 评论 -
android studio 导入 jar so zip
1、jar包放入libs文件夹,右键选择任意一个library“Add as Library”。2、so文件引入,在main文件夹下新建jniLibs文件夹,将so文件放入此文件夹3、zip包等资源文件引入:在main文件夹下新建asset文件夹,将资源文件放入此文件夹...原创 2018-05-07 12:02:04 · 1316 阅读 · 0 评论 -
android Retrofit 网络请求 参数注解
对Retrofit已经使用了一点时间了,是时候归纳一下各种网络请求的service了。下面分为GET、POST、DELETE还有PUT的请求,说明@Path、@Query、@QueryMap、@Body、@Field的用法。初始化RetrofitString BASE_URL = "http://102.10.10.132/api/";Retrofit retrofit = new Retrof...转载 2018-04-27 16:32:04 · 541 阅读 · 0 评论 -
android 理解 简介
Android 简介Android 提供了一个内容丰富的应用框架,支持您在 Java 语言环境中为移动设备开发创新应用和游戏。应用基础知识本文内容应用组件启动组件清单文件声明组件声明应用要求应用资源Android 应用采用 Java 编程语言编写。Android SDK 工具将您的代码 — 连同任何数据和资原创 2017-11-03 17:45:53 · 311 阅读 · 0 评论 -
mac系统如何生成SSH key与GitHub通信
一、检查 SSH key 是否存在在终端输入:ls -al ~/.ssh如果没有,终端显示如下:No such file or directory如果已经存在,则会显示 id_rsa 和 id_rsa.pub二、生成新的 SSH key在终端输入:ssh-keygen -t rsa -C "your_e原创 2017-11-17 10:09:23 · 657 阅读 · 0 评论 -
Android 开发 新技术
开发工具Android Studio: Google 官方放弃 Eclipse 和 Android Studio 普及。AS 虽然不算新,但是对 Android Studio 这个软件的更新速度快的惊人,有大量的新功能发布。例如支持很多注解代码提示注解、Live code template、支持自动生成 Parcelable 实现等等,作为开发者,持续关注这个更新列表Recen原创 2017-11-20 14:39:24 · 561 阅读 · 0 评论 -
android service的onstart()和onStartCommand()的区别
(1):onstart()方法和onStartCommand()方法的区别: onstart()方法是在android2.0一下的版本中使用。而在android2.0以上则使用onstartCommand()方法。它们两个方法放在一起使用时,不会产生冲突。 (2):onStartComand使用时,返回的是一个(int)整形。 这个整形可以有四个返回值:star原创 2017-11-15 10:20:34 · 1945 阅读 · 0 评论 -
android的Service中onCreate与onStartCommand的区别
服务生命周期中主要有三个重要的阶段:1)创建服务 onCreate2)开始服务 onStartCommand3)销毁服务 onDestroy一个服务只会创建一次,销毁一次,但是会开始多次。启动服务:onCreate/onStartCommand再次启动服务:onCreate/onStartCommand/onStartComma原创 2017-11-15 10:19:29 · 4490 阅读 · 0 评论 -
Android Service stopself方法
在onStartCommond方法里面调用stopself方法时,不会马上停止,而是onStartCommond方法执行结束才会停止。还有一点,调用stopself方法之后,service会执行onDestory方法。另外,如果onStartCommond中启动一个线程,调用stopself,线程也不会被杀死。Activity的finish方法,finish方法也可能不原创 2017-11-15 10:11:27 · 957 阅读 · 0 评论 -
Android Studio 自定义打包apk名字
Android Studio打包的时候,我们想自定义自己的文件名,则可以使用applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile原创 2017-11-29 11:10:35 · 2591 阅读 · 0 评论 -
Mac Android studio插件GsonFormat的使用
Android studio插件GsonFormat的使用第一步:安装GsonFormat插件首先,打开Android studio设置界面,快捷键command+逗号(mac上的快捷键),打开Plugins点击Browse Respositories,然后搜索GsonFormat,然后点击安装,重启Android Studio 2.创建JavaBean按下快捷键command...翻译 2017-11-17 18:35:28 · 6045 阅读 · 1 评论