Andriod基础
胡老哈
学电子出身,玩过嵌入式,玩过MFC,熟悉一些常用的通讯协议,用过几个开源库,喜欢自己做东西玩。现在一边玩C++,一边学Android,顺便学点Java。
展开
-
apk在真机上运行正常,在模拟器上崩溃
最近的一个测试apk,在真机上运行一切正常,但是到了模拟器上一开应用就崩溃,看错误日志也找不到什么头绪,后来看下了引用的so库,发现有x86的,于是把x86的so库加入编译,再到模拟器上运行,就正常了。android studio中,在gradle里的abiFilters内加入x86即可。大概原理是:模拟器一般都是x86架构,所以如果工程有so库的,需要加载x86的so库;而真原创 2017-12-28 09:08:45 · 14960 阅读 · 1 评论 -
ArrayAdapter的add出错
一个项目使用到ArrayAdapter,需要其动态变化,要使用add和insert方法,但是使用的时候报错了:java.lang.UnSupportOpreationException解决方法如下: // 直接用数组会导致add和insert出错 // 要动态增长,需要使用list// mArrayAdapter = new ArrayAdapter(mConte原创 2015-09-12 19:10:16 · 2074 阅读 · 0 评论 -
zxing解析二维码--NotFoundException
用zxing解析图片上的二维码,发现每次都无法解析,提示NotFoundException,但在http://zxing.org/w/decode.jspx这里却可以正常解析,于是开始各种搜索。stackoverflow上找到几种解决方案:修改参数:hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);--失败把图片变成黑白纯原创 2015-09-10 16:15:46 · 9484 阅读 · 2 评论 -
Android 禁止应用在模拟器上运行的实现
一种禁止应用在模拟器上运行的思路,首先要分辨出模拟器和真机,然后对模拟器的做处理。这里提供一种分辨方法:TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);// 如果 运行的 是一个 模拟器 if (deviceId原创 2015-09-06 16:50:47 · 11728 阅读 · 0 评论 -
一次二维码识别的开发记录
最近做了一个识别图片二维码相关的东西,遇到一些问题,在此记录一下,以备查阅。相关网页:zxing源码:https://github.com/zxing/zxingzxing相关资源:https://github.com/zxing/zxing/releaseszxing相关jar包:http://repo1.maven.org/maven2/com/google/zxing原创 2015-09-11 20:03:01 · 2468 阅读 · 0 评论 -
一个简单的android电池显示layout
思想:progressbar控制电量显示,再加上一个imageview覆盖再上层用于表示充电状态,右边加一个imageview表示电池头部其实直接在view上自己画会更简单一些,同时也好控制各种位置,但这里暂时不这么做。以下是layout部分:自定义progressbar: <nine-patch原创 2015-09-05 23:30:19 · 2386 阅读 · 0 评论 -
android BaseAdapter的getView的调用时机
打断点简单测试了下,发现BaseAdapter的getView的调用时机大致如下:初始显示时listview滚动时notifyDataSetChanged处理时大致就这3个时机。以上,仅做记录,备查。原创 2015-08-02 19:41:45 · 3469 阅读 · 1 评论 -
Android自定义按钮功能的一种实现思路
最近看到一个小工具,可以实现自定义按钮功能,觉得挺有趣的,于是就思考了下实现思路。现在想到的一种思路是:1.所有功能对应一个int型数值标记2.用一个map来把按钮的标示和按钮当前的功能联系起来,功能与1里面给出的对应3.点击按钮时,根据按钮标示取得对应的功能数值,然后去执行相应的function一个简单的例子:public class OnMainButt原创 2015-07-20 22:47:25 · 726 阅读 · 0 评论 -
Android 代码混淆
原文地址:http://blog.csdn.net/lovexjyong/article/details/24652085为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤:1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt一个文件,这个对混淆代码很重要,如果你不小心删掉了,没关系,从其转载 2015-07-20 14:16:00 · 675 阅读 · 0 评论 -
仿微信图片操作界面
只是仿一个操作界面,没有实质功能,纯属练手做着玩,记录下。分析首先,分析下微信打开一张图片以后的操作:长按图片可以调出一个操作菜单,如果图中有二维码,会增加一个识别二维码选项。所以,要实现的功能主要是:图片长按功能操作菜单操作菜单动态改变实现图片长按功能代码如下: ImageView img = (ImageView)findViewB原创 2015-09-12 20:17:18 · 778 阅读 · 0 评论 -
利用zxing识别图片二维码
图片处理import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.drawable.Drawable;public class ImageUtil原创 2015-09-11 20:23:02 · 9551 阅读 · 3 评论 -
android支持横屏旋转
之前一直只会设置横屏或竖屏,从来没有考虑过上下翻转问题,直到近期有测试提出说要支持横屏上下翻转,因为充电的时候玩起来很不方便。于是搜了一下,解决方案非常简单:原来的android:screenOrientation="landscape"改成android:screenOrientation="sensorLandscape"就可以了,非常的轻松加愉快。原创 2017-09-26 19:56:20 · 2477 阅读 · 0 评论 -
Android Support V4, V7, V13的作用与用法
1, Android Support V4, V7, V13是什么?本质上就是三个java library。2, 为什么要有support库?如果在低版本Android平台上开发一个应用程序,而应用程序又想使用高版本才拥有的功能,就需要使用Support库。3, 三个Support 库的区别和作用是什么?Android Support v4 是最早(2011年转载 2017-05-12 15:43:12 · 445 阅读 · 0 评论 -
AsyncHttpClient+mysql 中文乱码问题
最近做一个小东西,客户端用到AsyncHttpClient做get请求,服务端接收处理数据,然后存储到mysql,再从mysql读取数据回传给客户端。传输数据中需要使用中文,于是乎,各种乱码问题搞了好久,今天总算搞定,在此记录一下,备查。AsyncHttpClient中文编码先解决AsyncHttpClient的中文编码问题,AsyncHttpClient将客户端请求数据发原创 2016-05-16 21:11:27 · 1919 阅读 · 1 评论 -
android 百度地图SDK 3.7.0 周边雷达-Radar 周边搜索-PoiSearch
因为项目需要,最近研究了下百度地图的SDK,简单记录一些点。准备工作1.下载SDK及demo下载地址:http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download2.申请key教程地址:http://lbsyun.baidu.com/index.php?title=androidsdk/guid原创 2016-02-16 13:40:33 · 4148 阅读 · 8 评论 -
listview左右滑动item效果
这部分内容可以结合上一部分滑动删除的部分,做一个更好的滑动删除效果。功能:在listview上,左右滑动,对应的item有左右滑动效果主要实现思路:检测listview的touch操作,down时,记录位置,move时,做item滑动,up时,回滚到原始位置。实现代码:mListView.setOnTouchListener(new OnTouchLis原创 2016-01-26 20:58:44 · 2584 阅读 · 0 评论 -
listview滑动删除item的一个方案
功能:在listview上,向右滑动,直接删除一个item主要实现思路:检测listview的touch操作,down时,记录位置,up时,做删除。部分代码:mListView.setOnTouchListener(new OnTouchListener() { private int mDownX = 0; private int mDownY = 0原创 2016-01-26 16:13:48 · 1917 阅读 · 1 评论 -
2个更新UI的方法--activity.runOnUiThread及handler.post
记录2个更新UI的方法:activity.runOnUiThread public static void showToastSafe(final Activity activity, final String text, final int duration) { // 方法1 activity.runOnUiThread activity.runOnUiThre原创 2016-01-25 16:27:00 · 1114 阅读 · 0 评论 -
Android Manifest合并
修改主project属性文件中的manifestmerger.enabled=true,就可以实现Android Manifest的合并。主要用于lib工程和主工程之间。注意:各个工程之间的minSdkVersion和targetSdkVersion要一致,否则会报错。另外,注意manifest的注释,,前一定要留有空格,否则合并会提示出错。原创 2015-06-30 22:09:38 · 5031 阅读 · 0 评论 -
分享2个android开源库 DanmakuFlameMaster以及Volley
1.DanmakuFlameMaster来自B站的开源项目,DanmakuFlameMaster(燃烧吧!烈焰弹幕使),名字也很有B站气息。主要是做弹幕用的。参考链接:https://github.com/Bilibili/DanmakuFlameMaster2.Volley来自google的开源项目,主要是异步网络图片加载等,非常方便。参考链接:htt原创 2015-07-20 14:37:27 · 2728 阅读 · 0 评论 -
android meta-data的一个大坑--long类型数据
今天碰到一个关于android meta-data的一个大坑,就是当value是一个long类型数据时,不管你怎么获取,最后得到的其实都是一个阉割过的int型数据。目前已知的解决方法有2:在long数据前面或者最后加一个字符,使它变成string类型,然后对这个string进行处理,去掉相应的字符把这个long数据放到string资源里,不要放在meta-data里原创 2015-08-10 21:27:04 · 2947 阅读 · 2 评论 -
activity渲染结束的判断--onWindowFocusChanged
有时候我们会需要在整个activity完全渲染结束后才去执行一些动作,比如要获取某个view的宽高之类的,这个时候就会需要用到onWindowFocusChanged。onWindowFocusChanged是在activity完全渲染结束之后调用的,也就是说此时所有的view都已经正常了,可以获取到他们的宽高了。如果想要在onCreate中取得某个view的宽高,基本会出现获原创 2015-08-24 16:21:50 · 2372 阅读 · 0 评论 -
cocos2d-x 简单屏幕适配
最近在玩cocos2d-x的东西,做了个简单的东西,在win32下测试了下,然后移植到android上做测试,发现所有的图片都变小了,于是乎,就发现,是屏幕适配出现了些问题。我在win32上设置的大小是480*320,目标android设备是800*480,于是乎,移植后,所有的图片还是那么大,没有任何放大,所以看上去就显得很小,而且只在一小块区域。简单查了下网上的资料,都是看上去原创 2013-10-19 17:08:10 · 1268 阅读 · 0 评论 -
NDK环境搭建
1.下载Cygwin.NDK2.安装Cygwin,默认next,选择Devel为Install,需要其中的:gcc-core、gcc- g++、gcc4-core、gcc4-g++、gdb、make如果网速慢可以只选择这部分3.解压NDK4.配置环境变量新增2个:NDK_ROOT = E:\android-ndk-r8eNDK_Sample原创 2013-07-03 20:24:45 · 1067 阅读 · 0 评论 -
win7 64位下android开发环境的搭建
最近换了新电脑,装了win7 64位系统,安装了各种开发环境,也安装了android开发环境,与xp下的安装基本一致,记录下简单步骤及可能遇到的问题,供后人参考。1.jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html下载:原创 2013-03-19 21:26:59 · 4349 阅读 · 1 评论 -
C++到Android-HelloWorld建立工程及调试
HelloWorld,当初学C以及学C++的第一个程序都是HelloWorld,这次学Android也保持传统吧,从HelloWorld开始。新建工程新建一个Android工程,File--New--Project,然后选择Android,可以看到下面有几个子项,其中Android Sample Project:选这个可以查看自带的例子源码,可以作为很不错的原创 2012-11-21 21:13:12 · 1011 阅读 · 0 评论 -
android的jar包生成及使用
jar包生成步骤:编码在要生成jar包的包上,右键,exportjava-->jar file去掉一些不必要的打包的东西,填写导出路径导出OK,此时在导出路径下就可以找到导出的jar包了。使用:把jar包放到工程目录下,一般是libs文件夹下在jar包上右键,build path-->add to build path在工程上右键,build path-原创 2013-10-19 16:59:23 · 1711 阅读 · 0 评论 -
Jni简单记录
LocalRef与GlobalRef前者类似局部变量(类似,但是又有本质区别),后者类似全局变量前者在一次jni调用结束后,由jvm自动释放后者需要手动释放LocalRef内存泄露LocalRef与局部变量不同,它是保存在一张表中的,这张表在调用jni开始创建,一次jni调用结束后销毁注意:LocalRef的生命周期不是一个函数,而是一次jni调用,这一点与局部变量原创 2014-02-26 23:21:38 · 1493 阅读 · 0 评论 -
关于android library project里的assets
原文地址:http://blog.sina.com.cn/s/blog_a3b9b9040101lco3.html关键部分:注意:作为library工程可以引用外部jar包,但不能引用其它library工程,在library工程中不能使用aidl文件,不能引用raw、assets下资源转载 2015-07-27 16:38:13 · 3505 阅读 · 0 评论 -
android https HttpsURLConnection 忽略证书
在请求https的时候,有时候会出现各种报错,以下代码可忽略证书。之前网上找过一些,都会有问题,这个版本是亲自验证可用的。import javax.net.ssl.HostnameVerifier;import javax.net.ssl.SSLSession;import android.util.Log;public class NullHostNameVerif原创 2015-03-16 20:13:38 · 13393 阅读 · 3 评论 -
如何检索Android设备的唯一ID
关于本文档Android的开发者在一些特定情况下都需要知道手机中的唯一设备ID。例如,跟踪应用程序的安装,生成用于复制保护的DRM时需要使用设备的唯一ID。在本文档结尾处提供了作为参考的示例代码片段。范围本文提供有关如何读取各种Android设备的 ID的介绍,用以使用标识号。本文假定用户已经安装了Android以及开发应用程序必要的工具。并且,本文假定用户已了解Andro转载 2015-01-16 14:00:29 · 824 阅读 · 0 评论 -
Android apk签名打包相关的一些事
给没签名的包签名修改包的签名原创 2014-11-18 13:51:57 · 1077 阅读 · 0 评论 -
Android中的http请求 URLEncode
最近在搞http相关的处理,碰到一个URLEncode的问题,简单记录下,供后期查找,原创 2014-11-11 09:29:02 · 38924 阅读 · 1 评论 -
7步使用JNI
//1.在静态初始化中载入需要调用的本地动态库 static { System.loadLibrary("xxx"); } //2.申明Native方法 public native int getA(int nInput); //3.利用javah 生成本地头文件 //cmd 进入当前根目录 javah -classpath bin/classes -d jni co原创 2013-10-19 17:02:58 · 926 阅读 · 0 评论 -
Android开发环境配置
最近开始研究Android,以前也没碰过Java,不知道学起来难不难。 不管怎样,搭建开发环境是第一个要学习的。总体来说,开发环境的搭建断断续续的花费了近一个星期的时间,虽然有很多相关的文章,但是还是遇到不少问题,在此记录,方便自己后期查找,也方便大家参考。注意先把需要注意的东西放在前面,防止有人跟我走一样的弯路。下载Eclipse原创 2012-11-19 21:37:09 · 975 阅读 · 0 评论