
Android
文章平均质量分 58
ruyi366
这个作者很懒,什么都没留下…
展开
-
Android RTMP播放
RTMP、RTSP、HTTP协议都属于互联网TCP/IP五层体系结构中应用层的协议。理论上这三种都可以用来做视频直播或点播。但通常来说,直播一般用RTMP、RTSP。而点播用HTTP。 Android平台播放RTMP流媒体采用了GiraffePlayer2,使用前可在build.gradle中引入:api 'com.github.tcking:giraffeplayer2:0.1.25'api 'com.github.tcking:ijkplayer-arm64:0.8.8'...原创 2020-07-28 11:24:56 · 3947 阅读 · 2 评论 -
Android WebView加载后有白边框的问题
项目中常用WebView来加载说明的大图片,以免造成内存溢出。原创 2016-08-24 15:56:37 · 6141 阅读 · 0 评论 -
GridLayout绘制复杂表格
在Android页面绘制复杂表格,有跨行跨列的需求。原创 2015-05-26 14:06:18 · 2964 阅读 · 2 评论 -
Android Studio环境下Android单元测试(基于Robolectric+Mockito)
Android的单元测试不需要运行App,所有的任务都交给Robolectric和Mockito去做,简单方便。原创 2016-06-21 14:45:29 · 5403 阅读 · 0 评论 -
Android:30分钟弄明白Touch事件分发机制
转载于:http://www.cnblogs.com/linjzong/p/4191891.htmlTouch事件分发中只有两个主角:ViewGroup和View。Activity的Touch事件事实上是调用它内部的ViewGroup的Touch事件,可以直接当成ViewGroup处理。View在ViewGroup内,ViewGroup也可以在其他ViewGroup内,转载 2016-07-05 16:24:18 · 346 阅读 · 0 评论 -
Android DialogFragment偶发不能清除的问题
对话框现在多用DialogFragment来代替Dialog,在关闭对话框时需要dismiss操作;但如下代码偶发不能dismiss的问题:使用在progress dialog中,发送请求是show,请求完成后dismiss。 public static void show(FragmentManager manager) { DiyDialog dialogFrag原创 2016-05-13 16:18:13 · 3480 阅读 · 0 评论 -
那些年我使用Volley遇到的坑
转自:http://1029457926.iteye.com/blog/2264167 使用Volery已经快整整一年了,下面我来总结一下,我使用Volley时踩到的坑 (一) Volley的二次封装 下面看看我是怎么对Volley的二次封装的:Java代码 protected void doSimpl转载 2016-05-10 16:46:14 · 2709 阅读 · 0 评论 -
Android TextUtils.isEmpty()的误解
之前经常使用TextUtils.isEmpty(),用来判断字符串是否为空,也误认为空格也能返回true,造成代码错误。原创 2016-02-26 10:56:37 · 30173 阅读 · 1 评论 -
Android应用启动页面
Android启动页面原创 2016-01-18 17:50:48 · 516 阅读 · 0 评论 -
Android TextView 设置删除线
Android TextView 设置删除线原创 2015-12-16 18:40:16 · 8140 阅读 · 1 评论 -
Android DialogFragment 从下往上进入、从上往下退出实现
DialogFragment实现从下往上进入,从上往下退出效果原创 2015-12-29 17:05:50 · 4646 阅读 · 0 评论 -
Java解析 APK AndroidManifest.xml
获取Android版本信息,就需要解析AndroidManifest.xml文件。原创 2015-10-08 13:58:48 · 2683 阅读 · 0 评论 -
Android稀疏矩阵SparseArray
Java提供了HashMap<key, value>存储key/value的数据类型,而Android提供了优化的实现方式:SparseArray<E>、SparseBooleanArray、SparseIntArray、SparseLongArray,进一步提高了效率。原创 2015-08-20 17:16:22 · 1048 阅读 · 0 评论 -
TextView预渲染研究
转自:http://ragnraok.github.io/textview-pre-render-research.htmlAndroid中的TextView是整个framework中最复杂的控件之一,负责Android中显示文本的大部分工作,framwork中的许多控件也直接或者间接的继承于TextView,例如Button,EditText等。其内部实现也相当复杂,单论代码转载 2017-01-12 14:16:09 · 379 阅读 · 0 评论 -
Android Tips Round-Up
转自:http://blog.danlew.net/2014/03/30/android-tips-round-up-part-1/With my recent project I've been posting one Android class/method a day. People have been asking for an archive of these l转载 2017-01-12 16:10:31 · 554 阅读 · 0 评论 -
Retrofit 自定义Converter实现发送String和接收JSON
Retrofit已经为用户提供了六种Converter,如下:Gson:com.squareup.retrofit2:converter-gson Jackson:com.squareup.retrofit2:converter-jackson Moshi:com.squareup.retrofit2:converter-moshi Protobuf:com.squareup....原创 2019-07-14 18:17:57 · 2069 阅读 · 0 评论 -
Fragement横竖屏切换
项目的Fragment比较简单,除了标题栏就一个网络数据显示的RecyclerView,Adapter Item layout对应了不同的xml文件,分别在layout_port(竖屏)、layout_land(横屏)、layout(默认)文件夹下。但切换时发现,Adapter Item layout并未发生变化。 @Nullable @Override public ...原创 2018-08-28 15:58:32 · 344 阅读 · 0 评论 -
Android USB写入数据失败(EACCES (Permission denied))
最近接到一个问题反馈,一个几年前的APP,之前USB热插拔读写备份正常,现在居然不能正常备份。log中显示:System.err: java.io.IOException: open failed: EACCES (Permission denied)但确认权限都有,targetSdkVersion为22,因此不存在动态申请权限的问题。之后用同样的APP在低版本手机上测试正常(有些是需要手...原创 2018-07-24 11:22:00 · 2307 阅读 · 0 评论 -
Gradle 3.1 修改apk文件名和输出路径
项目中需要自动化打包,定制apk输出文件名和路径,需要在build.gradle文件的android中增加如下配置:android.applicationVariants.all { variant -> variant.outputs.all { variant.getPackageApplication().outputDirectory = new File(proj...原创 2018-04-03 10:02:45 · 9834 阅读 · 0 评论 -
Android通知栏图标显示网络图片
Android平台提供了默认的通知栏实现,如下的代码就能实现:NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);NotificationCompat.Builder builder = new NotificationCompat原创 2018-01-17 16:41:53 · 7766 阅读 · 0 评论 -
浮动窗口(Android)
浮动页面的需求是:通过直接的函数调用,在当前页面之上显示一个类似的广告页面。1、WindowManager搜索网上大多都是基于WindowManager:WindowManager是全局的,整个系统只有一个WindowManager。它是显示View的最底层。WindowManager主要用来管理窗口的一些状态、属性、view(增加、删除、更新)、窗口顺序、消息收集和处理等。通过C原创 2017-12-12 15:10:42 · 1216 阅读 · 0 评论 -
android native开发时:java.lang.UnsatisfiedLinkError: Native method not found的处理
转自:http://www.cnblogs.com/neil-yang/p/3271749.html这个异常一般是由于JNI的链接器不能正常识别C++的函数名造成的。处理的方法是用exern "C" {},来包裹需要export的C++的native方法。如果native的方法比较多,可以在头文件中定义宏:#ifdef __c转载 2017-10-31 09:46:18 · 688 阅读 · 0 评论 -
Java与C/C++通用的“AES/ECB/PKCS5Padding”实现
在Java中调用AES的加解密方法很简单,因为系统提供了很好的函数支持;但在C/C++中需要用户自己实现,因此需要学习AES加密的不同实现方式,以便正确的实现。原创 2017-08-25 14:35:04 · 5725 阅读 · 0 评论 -
MINA无法回调messageReceived函数
本文是在Android客户端上与服务器建立长连接,固定时间端发送心跳包。但发送初始化消息后,一直不能回调IoHandlerAdapter的messageReceived函数,虽然已经打印了接收Log(RECEIVED: HeapBuffer[...])。原创 2017-08-08 10:29:26 · 7190 阅读 · 1 评论 -
集成华为手机Push SDK的小结
华为Push消息分为:通知栏消息和透传消息。原创 2017-04-13 15:57:51 · 4328 阅读 · 0 评论 -
Android getIdentifier获取资源ID
开发lib包时,不能直接通过R直接调用资源ID,需要通过getIdentifier获取,现将常用的类型总结如下:public class ResourceUtil { public static int getLayoutId(Context context, String resName) { return context.getResources().getIden原创 2017-03-28 10:10:13 · 687 阅读 · 0 评论 -
Eclipse转Android Studio踩过的各种坑
Eclipse转Android Studio踩过的各种坑原创 2017-03-10 12:28:37 · 1718 阅读 · 0 评论 -
Android应用的换肤实现(APK)
Android应用换肤大概有如下几种方式:内置皮肤资源skin APK压缩skin文件skin APK是通过main APK+skin APK的方式,需要在AndroidManifest.xml文件中配置的android:sharedUserId属性值相同,从而实现主从APK能共享共享资源。代码实现如下:Context context = createPackageCo原创 2015-09-09 15:11:34 · 710 阅读 · 0 评论 -
Android控件自定义属性的使用
自定义属性通过style设置原创 2015-08-04 16:31:43 · 619 阅读 · 0 评论 -
安卓按比例布局,layout_weight用法
来源:http://blog.youkuaiyun.com/hytfly/article/details/8520617在网上看了一些对Layout_weight的讲解,有些说的比较片面,只列举了一种情况,然后自己通过实验和一些比较好的文章总结了一下,特此记录下来,以备以后所用。Layout_weight是线性布局,也就是LinearLayout里面用到的,下面通过实验来看这个Layout转载 2014-08-28 12:05:13 · 781 阅读 · 0 评论 -
在onCreate方法中获取某个View的宽度和高度
来源:http://blog.sina.com.cn/s/blog_821e2bb101010yin.html转载 2014-09-11 19:50:20 · 597 阅读 · 0 评论 -
Android进程与内存及内存泄露
来源:http://blog.youkuaiyun.com/hudashi/article/details/8451477第一部分 Android进程1.1、Android进程简介 每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,而每一个虚拟机实例都是一个独立的进程空间,不同的应用在不同的进程空间里运行,当一个虚拟机关闭或意外中止时不会对其它虚转载 2014-09-18 19:51:23 · 567 阅读 · 0 评论 -
OnScrollListener回调分析
来源:http://www.cnblogs.com/tt_mc/archive/2012/10/10/2718333.html转载 2014-08-21 18:43:17 · 531 阅读 · 0 评论 -
Java(Android)线程池
介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用。本文是基础篇,后面会分享下线程池一些高级功能。1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗?Java1234567new Thread(new Runnable() { @Override public转载 2014-09-05 12:15:52 · 565 阅读 · 0 评论 -
Android ListView item高度设置无效
嗨,居然今天才发现这个问题在原创 2014-07-28 18:20:27 · 2518 阅读 · 0 评论 -
Android进程与线程基本知识
来源:http://www.cnblogs.com/hanyonglu/archive/2012/04/12/2443262.html备注:作者总结dew转载 2014-07-24 18:20:39 · 616 阅读 · 0 评论 -
设计模式学习总结——观察者模式
观察者模式将观察者(订阅)和被观察者(发布)分离,实现了代码的松耦合;且定义了一对多的依赖关系,让多个观察者同事监听一个被观察者,同时一个被观察者能通知多个观察者更新。原创 2014-07-25 11:57:43 · 1095 阅读 · 0 评论 -
ProGuard优化Android日志
ProGuard通过删除从未用过的代码和使用晦涩名字重命名类、字段和方法,对代码进行压缩,优化和混淆。原创 2014-07-17 19:27:26 · 1268 阅读 · 0 评论 -
代码中设置颜色
#f00 ......在xml中使用颜色值,直接使用:@color/sample_color在代码中,需要认清此时的int值,究竟是颜色值,还是编译出来的R文件中的那个值。以免出现错误。比如:View.setBackgroundColor(int color),注释如下: /** * Sets the background color for this原创 2013-08-05 12:16:07 · 1112 阅读 · 0 评论 -
Android ListView 自适应大小,不覆盖下方View
ListView设置为wrap_content,但是随着ListView中item的增加,ListView将会覆盖到下方的View,View看不到。利用android:layout_weight属性,让下方View具有更大权重,让下方的View能正常显示: style="@style/..." > android:id="@+id原创 2013-05-28 11:10:56 · 2283 阅读 · 1 评论