android开发
mzyl
这个作者很懒,什么都没留下…
展开
-
android开发之Service的使用
实现步骤:1、定义Service子类public class LocalService extends Service { @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub Log.d("onBind", "onBind"); return new Lo原创 2016-03-31 22:56:39 · 726 阅读 · 0 评论 -
初探MeidaPlayer底层实现(二)
接着上一篇文章继续研究MeidaPlayer两个入手点:1 private static native final void native_init();2 private native final void native_setup(Object mediaplayer_this);jni实现在frameworks\base\media\jni\andro原创 2017-01-22 21:54:55 · 1150 阅读 · 0 评论 -
初探MeidaPlayer底层实现(一)
在写网络视频播放器的时候,对MediaPlayer框架有很多不了解的地方,比如不了解其缓冲机制无法实现具体的播放功能。于是想对MeidaPlayer进行深入了解,趁此对framework层源码进行研究来加深对android系统的学习。先看下简单的播放网络视频实现代码: mMediaPlayer=new MediaPlayer(); mMediaPl原创 2017-01-22 18:37:48 · 899 阅读 · 0 评论 -
高效显示Bitmap之缓存Bitmap
加载一张图片到UI线程是很简单的,然而一次性加载大量图片时变得复杂。大多数情况下(比如用listview、gridview、viewpager时),屏幕滚动时要显示的图片本质上应该是可以无限多的。当滑出屏幕时,通过重复利用子布局来减少内存的使用。垃圾回收机制还会释放你加载的图片,如果你没有任何长期存活的引用。这样很好,但是为了有流动和快速加载的UI,你应该避免每次都加载一遍。这里内存和磁盘存储原创 2016-11-24 23:13:15 · 388 阅读 · 0 评论 -
高效显示Bitmap之UI线程外处理Bitmap
如果数据源从硬盘读取或者网络, BitmapFactory.decode*方法不应该在main线程中执行。加载这些数据的时间是不可预知的,受限于多种因素(硬盘读取速度,图片大小,CPU等等)。如果任一因素锁住了UI线程,系统会标记你的APP无响应,用户会有选择关闭其操作(see Designing for Responsiveness for more information)。这节课教你原创 2016-11-23 21:03:43 · 542 阅读 · 0 评论 -
高效显示Bitmap之高效加载较大的 Bitmaps
图片来源多种多样,多数情况下往往比要求的要大。例如,系统应用程序显示照片画廊通常使用Android设备的相机分辨率远高于你的设备的屏幕密度。鉴于您在使用有限内存,理想情况下你需要加载一个低分辨率版本在内存中。低分辨率图片应该匹配显示它的UI组件大小。高分辨率图片不提供任何可见的好处,但是占据着宝贵的内存资源并且在动态缩放时带来额外的开销。本节课教你解码大位图不超过每个应用程序内存限制通过加原创 2016-11-21 22:34:21 · 322 阅读 · 0 评论 -
让你的APP可定位(三)
显示位置信息在前面的课程中,位置的更新以纬度和经度的形式获取。这种方式对计算距离或者在地图上显示图钉是很有用的,这种小数对终端用户又是毫无意义的。如果对用户显示位置,有很多更好的方式来代替。Perform Reverse GeocodingReverse-geocoding是将经纬度坐标转化为可读地址的过程。Geocoder API可以做到这一点。最后注意,这个API是基原创 2016-10-26 16:48:11 · 379 阅读 · 0 评论 -
让你的APP可定位(二)
获取当前位置在配置好LocationManger之后,就可以开始获取位置信息了。Set Up the Location ListenerLocationManger类有很多获取信息的方法。用简单的方式,你需要注册监听事件,来获取定位信息,最小时间和每个位置的距离。回调函数 onLocationChanged() 会被调用并关联有时间和距离信息。在下面的例子中,如果设备移原创 2016-10-26 16:32:56 · 363 阅读 · 0 评论 -
让你的APP可定位(一)
使用本地管理器在你的应用程序可以定位之前,需要设置一些权限。这节课,你将学会这些步骤。在Manifest文件中声明权限定位的第一步就是在manifest中设置权限。如果权限缺失,应用程序将会报 SecurityException 错误。由于 LocationManager方法的使用,因此需要ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION原创 2016-10-23 16:45:25 · 2321 阅读 · 0 评论 -
支持多屏幕
有四种屏幕大小: small, normal, large, xlarge对应四种密度: low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)还需要考虑到屏幕方向:横向、竖向一、创建不同布局例如,这个项目包含默认的布局和一个大的布局MyProject/ res/ layout/原创 2016-10-22 15:02:07 · 186 阅读 · 0 评论 -
ubuntu14.0安装genymothion
1、先去官网下载Genymothion免费版2、sudo apt-get install virtualbox3、命令行运行genymothion.bin进行安装 4、命令行运行genymothion/genymothion运行过程中出现错误如下:/usr/share/toptracker/bin/TopTracker: /usr/lib/x86_64-linux-原创 2016-08-18 01:11:20 · 314 阅读 · 0 评论 -
android studio下ndk开发
1、下载ndk2、配置ndk环境变量3、新建项目ndktest,在MainActivity类中添加本地方法如下4、make project,生成.class文件5、打开Terminal,默认是在当前module根目录下,输入以下命令cd src\main6、然后输入以下命令生成.h文件javah -d jni -classpath F:\mzhd\softwar原创 2016-07-30 20:58:07 · 197 阅读 · 0 评论 -
解决BitmapFactory.decodeResource时出现图片缩放的问题
自定义以下方法:public Bitmap decodeResouce(Resources resources, int id){ BitmapFactory.Options options = new BitmapFactory.Options(); TypedValue value=new TypedValue(); getResources().openRawRe原创 2016-06-24 23:32:39 · 2306 阅读 · 0 评论 -
ubuntu安装tomcat
第一步:下载tomcat,http://tomcat.apache.org/,并放到任意文件夹中,如下图第二步:解压到指定文件夹中,如下图:第三步:sudo vi tomcat/apache-tomcat-9.0.0.M4/bin/catalina.sh,配置JDK环境变量,如下图所示:第四步:启动tomcat,如下图:第五步:浏览器测试下,原创 2016-04-24 19:51:14 · 229 阅读 · 0 评论 -
ubuntu安装jdk
第一步:下载JDK,http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html第二步:将JDK拷贝到UBUNTU系统上的任意文件夹中,如下图:第三步:解压到指定文件夹中,这里解压到jdk文件夹中。第四步:配置环境变量,输入sudo vi ~/.bash原创 2016-04-24 18:54:18 · 213 阅读 · 0 评论 -
xml解析之SAXParser的简单使用
基于事件驱动的解析方式,不像DOM解析一样把整个文档放入内存中。实现将xml文档解析并放入list集合中:1、此处在assets文件夹中创建xml文件,eg: movie.xml navigation 导航 3 synch_theatre 同步剧场 6原创 2016-04-06 00:23:54 · 1425 阅读 · 0 评论 -
初探MeidaPlayer底层实现(三)
前一章提到的native_setup函数中有这么一句sp mp = new MediaPlayer();MediaPlayer类的定义在frameworks\av\include\media\mediaplayer.h文件中MediaPlayer类的实现在frameworks\av\media\libmedia\mediaplayer.cpp文件中构造函数如下:原创 2017-01-22 23:07:46 · 833 阅读 · 0 评论