Android当中实现视频播放的方式有两种,即:通过VideoView实现或者通过SurfaceView + MediaPlayer实现。由浅至深,首先来看下想要在Android上播放一段视频,我们应当怎么做。前面我们已经提到了两种方式,这里我们来看一下具有更好的拓展性的第二种方式,也就是通过SurfaceView + MediaPlayer进行实现。首先,我们来定义一个布局文件如下,为了方便起见,我们仅仅只在该布局中定义了一个SurfaceView:<?xml version="1.0" encoding...
handler在安卓开发中是必须掌握的技术,但是很多人都是停留在使用阶段。使用起来很简单,就两个步骤,在主线程重写handler的handleMessage( )方法,在工作线程发送消息。但是,有没有人想过这种技术是怎么实现的呢?下面我们一起探讨下。先上图,让大家好理解下handler机制:handler机制示例图上面一共出现了几种类,ActivityThread,Handler,MessageQueue,Looper,msg(Message),对这些类作简要介绍:ActivityThread:程序的启...
最近学习了android的界面的跳转,一个是activity和fragment之间的跳转(之前的博客说过),一个是不同activity之间的跳转。 activity直接的跳转很简单,只需要用Intent即可,而且传递数据很简便,如果只是传递简单数据,即可直接使用,如果传递复杂的数据,比如一个类,就得需要把类定义为。 个人觉得android跳转页面要比JAVA的简单的很多!!。看例子。 下图是从一个Activity跳转到另一个activity,并将数据传...
为什么要写这篇博客呢?因为,我在做这个第三方登录的时候,找了很多资料,发现要么就是过时了,要么就是说的很不清楚,很罗嗦,而且很多都是一些小demo,不是什么实例,甚至连腾讯官方的文档都有这个问题,文档中很多地方用的不是最新的sdk写的示例,用最新版本的sdk发现根本没法达到预期的效果,很多api已经发生了变化,demo还是用的原来的api中的方法,最坑爹是demo下载下来还要一个支持的库文件,但是sdk中又没有提供。。自己跌...
Android Room联合AsyncListUtil实现RecyclerView分页加载ORM数据我之前写了一系列关于AsyncListUtil实现RecyclerView和ListView的分页加载机制和技术路线,见附录文章4,5。同时也写了一些列文章介绍Android官方推出的ORM数据库:Room技术,见附录文章1,2。现在结合Android分页加载框架AsyncListUtil,以及Android官方ORM数据库Room,实现数据库数据分页加载到RecyclerView里面。先给出一个例子,实现一个简单功能,在Android Room数...
清楚应用数据和卸载应用,直接执行命令:* String cmd = "pm clear " + packageName; 或者 * String cmd = "pm clear " + packageName + " HERE";* String cmd = "pm uninstall " + packageName; 或者 * String cmd = "pm uninstall " + packageName + " HERE";* String cmd = "pm install " + apk_path; 或者 * String cmd = "pm uninstall " + apk_path+ " HERE";且在清楚数据之后应用本身的Service和Alarm定时会自动取消掉,进...
一直想写一份技术文档,但由于自感能力有限而无从下笔,最近做了个关于Android平台下实现与C语言的通讯来操作蓝牙模块的项目,中间碰到了许多问题,也在网上查了许多资料,在完成主要功能后,也有一些人在网上问我一些问题,这里写下这篇文档算是一个阶段性的总结。如果反响好,后续将会发上Android Stub与新版Android HAL的学习文档。由于蓝牙模块是串口通讯机制,使用C语言来访问,而Android的应用层采用Java,无法直接操作硬件。...
1、AChartEngine 简介AChartEngine是为Android应用而设计的绘图工具库。可用于绘制多种图表,我使用的是achartengine-1.1.0.jar。ChartEngine支持的图表类型:折线图、区域图、散点图、时间图、柱状图、饼状图、气泡式图表、环形图、高低交替图等。以上每种图表都可以包含多个序列, 可以将X轴以水平或垂直的形式显示,也支持很多自定义的特性。另外,图表可以作为View构建,也可以作为Intent构建这样可以被用于启动一个活动(Activi...
上一篇 android hook 框架 libinject 简介、编译、运行 实际运行了so的注入并调用了注入so里的一个函数,这篇开始分析其实现。 与之前分析的 abdi 项目一样,libinject2 也是依赖于linux系统的 ptrace 系统调用。 android hook 框架 ADBI 简介、编译、运行android hook 框架 ADBI 如何实现so注入android hook 框架 ADBI 如何实现函数挂钩 这个库首先对ptrace的调用封装了几个helper函数int ptrace_readdata(pid_t pid, uint8_t *...
在上一篇专题Android开发之图片处理专题(一):利用软引用构建图片高速缓存中我们讲述了如何利用软引用技术构建高速缓存。那么想要用到图片,首先得有图片的来源。一般而言,一个应用的图片资源都是从服务器处获得的。今天,我们利用Android开发之网络请求通信专题(二):基于HttpClient的文件上传下载里面封装好的httpUtils来实现图片的下载,然后加载到本地配合软引用缓存使用,以一个listView为例子来说明。一、准备工作我们需...
1. 问题引入:前面我们是使用方法 降低屏幕亮度(不常用) 和 替换theme,两者都是针对Activity的背景进行白天、夜间模式的交换,但是如果我们显示的是Html的内容,这个时候改怎么办?分析:首先加载Html页面肯定是要用到WebView的,通过loadUrl的方法可以把html页面显示到webView,我们知道Android可以与JavaScript进行交互,就是说可以在JavaScript中调用Android的代码,也可以在Android中调用JavaScript代码。所以就有了一个思路...
/*** 判断Ping 网址是否返回成功* * @param netAddress* @return*/public static String isPingSuccess(int pingNum, String m_strForNetAddress) {StringBuffer tv_PingInfo = new StringBuffer();try {Process p = Runtime.getRuntime().exec("/system/bin/ping -c " + pingNum + " " + m_strForNetAddress); // 10.83.50.111// m_strForNetAddressint status = p.waitFor();String result ="";if (status == 0) {result = "succ...
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/48049913如今的Android开发需求越来越来多,实现效果越来越酷炫,很多Android APP都要实现PC网站上那样的图片轮播效果,那么,这些图片的轮播效果是如何实现的呢?下面,我就跟大家一起来实现这些酷炫的功能。一、原理首先,将这些要轮播的图片和一些文本分别放置在不同的数据集合中,程序启动的时候默认显示一组图片和文本数据,然后启动一个定时器,每隔一段时...
布局:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/container"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.msgSend.MainActivity"tools:ignore="MergeRootFrame" ><TextViewandroid:id="@+id/tv_pleaseInputPhoneNum"android:layout_width="wrap_content"android:layou...
本例仅在Android2.3虚拟机跑通过,如果要适配其他机型,请自行研究,这里只是抛砖引玉。 0x00 在Android中的Apk的加固(加壳)原理解析和实现,一文中脱壳代码都写在了java层很容易被识别出来,很多需求需要把脱壳的程序转移到native层,其实转移的思路也很简单,就是在native层通过JNI调用Java层代码。 0x01 public class ProxyApplication extends Application {@Overrideprotected void attachBaseContext(Context ba...