Android移动开发
文章平均质量分 90
鱼塘鱼汤
A man
展开
-
Pag渲染过程 -- 背景知识
渲染是图形程序的核心,无论是我们在电子设备上看到的任何图形或者文字都是利用计算机图形渲染技术给我们呈现出来的结果原创 2023-02-25 14:06:38 · 792 阅读 · 0 评论 -
腾讯Libpag研究1(扫盲和介绍)
Pag介绍PAG是腾讯在好几年前发布的一种动画文件格式,但是以前一直没开源,用的人也很少,也就一直没有关注。不过他们终于在今年1月份开源了,我也是这个时候开始去研究PAG,发现里面有不少值得学习的东西。动画库扫盲做应用开发的我们都知道,可以利用系统提供的动画API实现各种动效,但是这种办法效率很低,并且无法移植,多端都需要自己开发一遍。并且开发出来的效果和设计师需要的多多少少会有一些差异,一开始的方案是使用帧动画或者gif/webp的动图来播放,但是由于图片占用资源过大,所以没有广泛使用。16年起业界原创 2022-05-11 23:26:10 · 5119 阅读 · 2 评论 -
修复金山云KSYStreamer 在Android P以上机型Native Crash
问题在升级了Target API28之后,发现我们一直使用的金山云的推流SDK在部分Android 9以上的手机离开开播页的时候会不明的出现Crash,我的小米8上面是固定第二次的时候Crash,一些手机第一次就Crash了,崩溃日志如下:Abort message: 'FORTIFY: pthread_mutex_destroy called on a destroyed mutex (0x...原创 2020-04-02 21:34:22 · 6171 阅读 · 7 评论 -
RxJava2的Flowable observeOn线程调度顺序问题
在项目的下载库部分使用了PublishProcessor来实现支持有背压的Observable,向外提供数据变化状态,同时还对外提供了Single从数据库里面去获取数据。在下载界面我们会首先去subscribe PublishProcessor以监听数据变化,然后去拉取数据,填充到我们的界面里。流程大致如下:TD.downloader.observeTaskChange() .f...原创 2019-11-28 22:11:34 · 994 阅读 · 0 评论 -
用Python实现一个简单的批量无水印快手抖音批量下载器
文中介绍的方法仅限学习使用,切勿做非法用途结合上一篇说了一个通过在手机上面搭建Http服务去破解App的密钥,如何真正的实现一个批量下载视频的功能呢?我们用Python3简单的写了一个脚本,可以搜索特定用户,选择用户后,下载这个用户所有的视频。项目地址:https://github.com/tbruceyu/AppCaller , 欢迎Star关键接口搜索用户的接口:http://...原创 2019-10-28 20:21:07 · 3923 阅读 · 2 评论 -
利用沙盒技术破解APP的API协议加密
偶然无聊的需求项目地址:前段时间闲的没事,经常刷某视频App。里面有很多有才的人,偶然把他们的视频都给下载下来在电脑上面存起来慢慢看。作为一个主要工作在客户端上的码农,第一时间想到了去抓包看一下他们的App协议。可以看到,通过调用http://103.107.217.65/rest/n/feed/profile2这个接口就可以去获取到这个主播的视频了。然后通过分页加载即可下载所有的视频。...原创 2019-10-14 20:12:33 · 6988 阅读 · 6 评论 -
一种比较好的JNI Java和C++相互传递参数和返回值的方法
序言以前在Android上做移动多媒体开发的时候,有很多需要在Java和C++相互传递参数的Case,以前因为时间卡的紧,一直没有去修复这一类的问题,因为能用,没有出什么问题,也就没有想什么优化方案。最近自己有一些闲暇时间折腾点小玩意儿,也需要从Java和C++之间相互传递参数。想到以前曾经有JNI方法20多个参数的情况,于是准备把这块好好优化一下。思路数组封装法我想到的第一种思路是把各种...原创 2018-11-04 22:46:08 · 1503 阅读 · 0 评论 -
Vivo/Oppo手机安装app时自动输入密码以及点击安装
Vivo手机和Oppo等手机在安装App的时候总是会有一个讨厌的弹窗让我们输入密码或者点击继续安装,严重的影响了开发效率。如下图所示这简直是无法忍受。于是想着写一个软件帮我自动点击。第一是想到的用辅助功能在界面上点。这样是可以,但是经常服务在后台被莫名其妙的停止了,而且在密码窗界面设置了安全窗口,无法获取任何界面信息。于是我想到了在电脑上面写一个shell脚本,帮我实现自动点击。脚本比较简单,...原创 2018-10-09 10:35:53 · 9487 阅读 · 2 评论 -
最简单的让IjkPlayer自动旋转带有rotation视频的方法
问题在项目里面我们使用了ijkplayer0.8.8版本去播放网络视频,发现有一些视频播放时被拉伸了。如下图: 把视频抓下来查明原因,发现是视频metadata里面带了rotation信息,而视频的宽高被调换了。解决方法官方的解决方法是给一个ROTATION_CHANGE的回调给上层,然后上层去把View做旋转。这样实在是太麻烦。我但是很奇怪的是ijkplayer本身是基于ffp...原创 2018-09-13 16:24:21 · 6622 阅读 · 6 评论 -
记录下Gradle化Android Gallery3D应用的过程
意义Android系统里面有很多优秀的应用。Gallery3D就是十分优秀的一个。里面包含了renderscript图像处理,OpenGL特效渲染等一系列的功能。很多同学以为它是在Android源码里面,所以一直敬而远之。但实际上它几乎没有使用什么私有的API,完全可以独立出来用SDK编译成app放到其他版本的手机上面运行。我在一年前研究滤镜的时候做过一个版本的Gallery3D应用,但是一年过去了原创 2017-03-03 13:51:59 · 1272 阅读 · 2 评论 -
Mac El Capitan(10.11.6) 编译以及烧制Nexus6P(6.0.1-MTC20F)的曲折经历
下载Android源码由于以前有过Android源码相关的开发经验,所以这一关倒是难不倒,重新参考官方的文档即可(http://source.android.com/source/downloading.html)搭建Mac下的编译环境Android官方有Mac的源码编译环境搭建介绍(https://source.android.com/source/initializing.html#settin原创 2016-11-28 17:01:15 · 1182 阅读 · 0 评论 -
Android Studio多个module导入AAR库
介绍有时候由于需要一些自定义之后的开源库,无法使用jCenter里面的官方库,又懒得自己搭建Maven仓库,所以我们想要自己在项目里面直接导入本地的AAR库。通用方法和问题网上通用的AAR导入Gradle的方法很简单:repositories { flatDir { dirs 'libs' } } dependencies { compile原创 2015-08-26 23:54:52 · 12398 阅读 · 3 评论 -
Fresco介绍: 一个全新的Android图片加载库
Displaying images quickly and efficiently on Facebook for Android is important. Yet we have had many problems storing images effectively over the years. Images are large, but devices are small. Each p翻译 2015-08-13 00:12:41 · 1797 阅读 · 0 评论 -
Android圆角Tag控件的另类实现
项目需要实现圆角的标签功能,按照日常的实现,用一个ShapeDrawable就可以搞定。但是如果我们是想要有图片背景的圆角标签呢?这个就需要把背景先设置成图片,然后再把这个图片处理成圆角的,最后再设置成背景。如下步奏:原创 2015-08-07 11:50:22 · 1250 阅读 · 0 评论 -
Fiddler实现App前后端隔离开发
需求现在基本的一个App开发流程都是在定好需求后,就开始Agile development。需要客户端与服务端共同商量一套协议之后,服务端和客户端开始并行开发。原则上客户端应该相信服务端,但是事与愿违,经常会出现服务端返回一些并非客户端想要的数据,造成上线后App的各种异常。为了让服务端对客户端造成的影响最小,我们可以借助一些工具来协助我们开发。今天要说的就是Fiddler(http://www.t原创 2015-08-20 00:38:45 · 1898 阅读 · 0 评论 -
Android APP去除启动页出现的黑色闪现
Android APP在启动的时候,会有默认的一个黑色预启动背景,如果启动页是亮色的,十分影响视觉。我们只需要设置SplashActivity的Theme就可以了。方案有三种:设置一张图<style name="Theme.AppStartLoad" parent="android:Theme.NoTitleBar.Fullscreen"> <item name="android:windo原创 2015-10-08 14:16:16 · 3516 阅读 · 1 评论 -
看一手的有字幕的Google Android开发视频
作为一个Android开发者,肯定希望能够第一首的获得官方的一些新闻以及视频,Google在Youtube有一个叫Android Developers的公众号,专门提供有用的Android视频地址如下: https://www.youtube.com/channel/UCVHFbqXqoYvEWM1Ddxl0QDg 但是由于没有字幕,英文听力不好的同学看起来十分费劲。偶然发现Youtube竟然提原创 2015-10-09 21:24:15 · 901 阅读 · 0 评论 -
使用Android Studio调试内存问题
前言内存问题对于Android开发者是永远的痛。如果一个Android程序员说他没有遇到过OutOfMemory,那只能说他绝对不是做Android的。以往在ADT年代,都是使用eclipse的Mat(http://www.eclipse.org/mat/)插件来做内存分析。在使用了Android Studio开发后,发现AS不仅带来了不少编码上的便利,同时还带来了很多有用的工具。其中的内存分析工具原创 2015-11-26 14:38:22 · 13916 阅读 · 2 评论 -
Gradle化的Android Gallery3D App
花了点时间把Android源码里面的Gallery3D拷贝出来做了一个能够用Gradle编译的版本,其中有so库是直接从系统拉取出来的,兼容性不一定十分完美,但是我身边的机型都支持。阅读它的实现对我们学习Android的render script以及一些3D特效和图片滤镜处理十分有帮助。源码地址https://github.com/tbruceyu/GradleAndroidGallery3D效果原创 2016-01-14 00:47:49 · 662 阅读 · 0 评论 -
自己编译运行Fresco
介绍Fresco(https://github.com/facebook/fresco) 是Facebook出的一个高性能的ImageLoader。内存占用方面表现得十分优秀。但是由于一些特殊要求,需要修改一些源代码,满足我们自己系统的要求。比如如果自己公司的图片服务器加入了防盗链的机制,需要再HTTP头里面加入referer这个header。准备工作1、安装Android Stu原创 2015-08-27 00:06:39 · 1469 阅读 · 0 评论