- 博客(29)
- 资源 (7)
- 收藏
- 关注
原创 Android使用VideoView播放视频文件及添加WebVTT字幕
设置播放源,支持本地或者网络资源(如:HLS、RTSP):videoView.setVideoURI(uri)添加播放控制器MediaController:可选MediaController controller = new MediaController(this);controller.setMediaPlayer(this);videoView.setMediaController(cont...
2018-07-16 15:35:37
7339
原创 二叉搜索树(BST)的增删改
维基百科关于二叉搜索树的介绍二叉查找树(英语:Binary Search Tree),也称二叉搜索树、有序二叉树(英语:ordered binary tree),排序二叉树(英语:sorted binary tree),是指一棵空树或者具有下列性质的二叉树。在二叉查找树删去一个结点,分三种情况讨论:若*p结点为叶子结点,即PL(左子树)和PR(右子树)均为空树。由于删去叶子结点不破坏整棵树的结构,...
2018-04-12 10:55:27
821
原创 使用DDMS中的native heap检查Android native内存泄露
检查手机上目录system/lib(system/lib64)下存在libc_malloc_debug_leak.so、libc_malloc_debug_qemu.so(eng或者user-debug版本自带)setprop libc.debug.malloc 1(android7.0以后设置新属性 :setprop libc.debug.malloc.options backtrace ...
2017-05-04 21:19:49
5299
原创 CursorAdapter如何监听数据变化通知界面刷新
ContentObserver 监听数据库变化DataSetObserver 监听cursor close/deactivate/requery
2017-02-28 16:11:51
1154
原创 HttpURLConnection替代apache httpclient上传文件
Android 6.0 release removes support for the Apache HTTP client. If your app is using this client and targets Android 2.3 (API level 9) or higher, use the HttpURLConnection class instead.
2017-02-10 11:48:25
961
原创 okhttp3缓存实践
离线时使用cache,在线时访问网络并更新cacheOkHttpClient设置cache后,response自动进行缓存;通过拦截器,离线时request添加头信息header(“Cache-Control”, “only-if-cached”)强制使用缓存
2017-02-08 15:07:17
2186
原创 波兰式转换为逆波兰式
波兰式是在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之前,所以这种表示法也称为前缀表达式。例如: (2 + 4) * 6的波兰式为 *+246逆波兰式(Reverse Polish notation,RPN,或逆波兰记法),将运算符写在操作数之后,也叫后缀表达式。例如:(2 + 4) * 6的逆波兰式为 24+6*算法实现(java): 构建波兰式二叉树后续遍历二叉树生成逆波
2017-02-05 23:58:51
1447
原创 Android简单获取手机联系人姓名电话号码
1.手机上联系人数据库文件(contact2.db)存放目录:/data/data/com.android.providers.contacts2.联系人源码位于工程目录:packages\apps\Contacts3.数据库中一堆表,但常用这些表:data、phone_lookup、contacts、raw_contacts@ContactsDatabaseHelper.java
2016-04-08 19:56:00
3998
1
原创 Ubuntu Apache2开启mod_rewrite解决laravel路由失效问题
1、开启rewrite模块;$sudo a2enmod rewrite或$sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load2、修改/etc/apache2/sites-available/000-default(默认),将的AllowOverrid
2015-10-31 19:26:54
3532
原创 AlertDialog传递application context报错原因分析
前言:在Activity中某个地方需要弹对话框时,通常会构造一个AlertDialog然后show一下搞定。其中在构造AlertDialog时,也很自然的传递了当前Activity作为上下文context,但这里如果我们故意传递Application context,那么会发生应用崩溃。本着知其然知其所以然的精神,来初探一下原因。1.根据堆栈信息,ViewRootImpl如下地方跑出异
2015-09-17 16:14:42
3657
原创 RecyclerView缓存的问题
1.RecyclerView非常灵活,包括定制RecycledViewPool。参考接口:public void setRecycledViewPool(RecycledViewPool pool)示例: final RecyclerView.RecycledViewPool pool = new RecyclerView.RecycledViewPool() {
2015-07-10 18:34:42
14771
原创 Android5.0 ToolBar
ToolBar使用经验总结:1.如果需要兼容5.0以下版本,建议使用support.v7.appcompat中的ActionBarActivity,其ActionBar的实现用ToolBar替换了原来的ActionBarView,其中ToolBar继承自ViewGroup,本身没有提供自定义view的接口,需要可以通过getSupportActionBar返回的WindowDecorActionBa
2015-06-19 10:41:54
1106
原创 BFS求解迷宫问题初探(java版)
BFS,其英文全称是Breadth First Search。 BFS并不使用经验法则算法。从算法的观点,所有因为展开节点而得到的子节点都会被加进一个先进先出的队列中。一般的实验里,其邻居节点尚未被检验过的节点会被放置在一个被称为 open 的容器中(例如队列或是链表),而被检验过的节点则被放置在被称为 closed 的容器中。(详情见百度百科)import java.util.Lin
2014-01-24 14:30:21
4455
原创 动态规划求解01背包问题初探(C版)
理论部分来自http://blog.youkuaiyun.com/ymeng_bupt/article/details/6820544一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求
2012-10-26 17:54:32
1298
原创 Android的LMK和OOM
Android分析之LowMemoryKillerlinux操作系统的传统理念就是内存用的越多越好,尽可能拿来用,既然被尽量的使用,自然应该有清除机制。Android以linux为基础,自然部分继承了这个特性。Android使用lowmemorykiller在达到某个内存门限的情况下去选择进程删除来释放内存。关键的配置文件有如下两个,/sys/module/lowmemorykiller/pa
2012-10-23 18:42:50
4647
原创 约瑟夫问题初探
约瑟夫问题:据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从,Josephus要他
2012-10-23 09:52:51
1129
原创 Android远程服务绑定
通常我们会在一个acitivity中通过调用bindService来绑定一个服务,但当绑定的服务和当前的activity属于不同的进程时,这种情况属于远程服务绑定。1.所绑定的service在本包内,但是在AndroidManifest.xml中指定service为一个进程(运行时为单独一个进程),就是远程绑定。2.所绑定的service在本包外(运行时为单独一个进程),也是远程绑定。
2012-10-19 17:47:23
1703
原创 快速排序算法实现(C版)
一趟快速排序的算法: 1)设置两个变量I、J,排序开始的时候:I=0,J=N-1; 2)以第一个数组元素作为关键数据,赋值给key,即 key=A[0];3)从J开始向前搜索,即由后开始向前搜索(J=J-1即J--),找到第一个小于key的值A[j],A[j]与A[i]交换;4)从I开始向后搜索,即由前开始向后搜索(I=I+1即I++),找到第一个大于key的A[i
2012-10-18 16:27:22
660
原创 Android之网络文件下载
环境搭建:本地服务器(下载wamp【Windows, Apache, MySQL, PHP 】,安装即可,然后将网页或文件放进 www directory)虚拟机(访问本地服务器的ip:10.0.2.2) 注意事项:权限相关网络访问 存储卡访问 文件权限 如:chmod 777 /data 源代码:package com.example.net_ex0
2012-10-17 10:28:54
607
原创 计数排序算法实现(C版)
算法的步骤:1.找出待排序的数组中最大和最小的元素2.统计数组中每个值为i的元素出现的次数,存入数组C的第i项3.对所有的计数累加(从C中的第一个元素开始,每一项和前一项相加)4.反向填充目标数组:将每个元素i放在新数组的第C(i)项,每放一个元素就将C(i)减去1 源代码:#include//double start_time = 0;//double end
2012-10-16 09:23:21
790
转载 Android下打印调用栈
Android下打印调用栈1. Java层如何打印调用栈?在优化Android启动过程时,同事给出一种打印出调用栈的函数。分享一下 java.util.Map ts = Thread.getAllStackTraces(); StackTraceElement[] ste = ts.get(Thread.currentThread());
2012-09-24 15:47:05
794
原创 Android按键超时的ANR原理小结
1) 按键处理主要的功臣是WindowManagerService. mInputManager@WindowManagerService.javamInputManager = new InputManager(context, this); @InputManager.java public InputManager(Context context, W
2012-09-22 16:40:59
8846
原创 android动态库存放路径问题
首先来看下我们是如何使用自己的动态库:public class MyActivity extends Activity { /** Called when the activity is first created. */ //WebView webView; public native int sum(int i, int j); static{
2012-09-21 18:21:06
8080
原创 android异常捕获
为了更好的理解,先介绍下背景:当我们调用startActivity(),向AMS发起启动一个Acitivty的请求后,AMS在幕后帮我们做了很多事情。其中会启动一个新的进程(一个进程中可以有多个Activity)startProcessLocked()@ActivityManagerService.java// Start the process. It will either
2012-09-21 17:40:35
1729
lotus_OA进程killer
2012-09-20
windows程序设计及api函数参考大全
2010-07-13
Linux程序设计学习资料
2010-02-08
学习bash(第二版)
2010-02-08
IPMI学习资料(double)
2009-10-04
网络课设(发送TCP数据包)
2009-05-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人