Android汇总
wshngyf
这个作者很懒,什么都没留下…
展开
-
android Sockte、ServerSocket阻塞,不同步问题
从昨天搞到了现在,一直有问题,开始以为是线程通信问题,测试后发现不是,走了好多弯路。用两个真机模拟的,有时候没有LogCat,也不知道原因。有一次发现提示read(),readline(),查了一下readLine()函数,原来是没有数据时,readLine()一直阻塞,直到接收数据。 但是在另一端也是处于阻塞状态。 使用这个函数socket.shutdownOutput(); 半关闭原创 2016-03-02 23:08:43 · 2486 阅读 · 0 评论 -
Eclipse中修改Android SDK Manager路径
window->preferences->android->SDK location 中进行修改。适合不能翻墙更新,手动下载SDK的进行设置。原创 2016-02-17 21:48:00 · 3267 阅读 · 0 评论 -
Android studio开发百度地图API
百度地图的API学习,按照百度地图开放平台给的文档进行学习,只要认真多读几遍,掌握不是问题。我只是对新手做个入门的引导。1.进入百度地图开放平台,注册并登陆:http://lbsyun.baidu.com/ 。选择开发>Android地图SDK。2.可以先看下概述,看看可以使用哪些功能。下面就是获取密钥。3.①应用名称,必须和你创建的应用名保原创 2016-01-24 17:49:57 · 1372 阅读 · 0 评论 -
Android Support V4是什么?
在使用viewpager时候用到了android support v4。原来是Google提供的兼容低版本Android系统提供的支持包,v4包兼容Android 1.6以上的版本。有时候在使用一些函数方法时会提示两种一样的方法,仔细看会发现有android support v4。也有v7的支持包,v7兼容2.1以上的Android版本。原创 2016-02-17 21:35:30 · 1664 阅读 · 1 评论 -
Android studio 创建签名文件
应用程序数字签名的作用简单说一下,每个应用都是有数字签名的。也叫数字证书。用来区分是否是同一个应用程序,可以用来升级程序。但是数字签名是有有效期的。Android studio创建数字签名:这里是设置应用程序数字签名和创建数字签名的选项。点击后进来。创建一个新的或者选择之前创建的数字签名,这里创建一个新的。注意要记住保存的路径和密码。根据自己的信息填写,不必原创 2016-01-24 17:31:57 · 10434 阅读 · 0 评论 -
ScrollView嵌套Listview处理方法
最近项目中用到了ListView,在一个布局文件中用到了多个组件,发现ScrollView嵌套ListView时,ListView只显示一行item,而且不能拖动。layout_height属性是”match_parent”。然后在百度看了很多文章,原来是listview的高度在加载时无法确定。所以需要在程序中给他指定。先看一下代码最初的写法的显示。activity_main.xml<?xml ve原创 2016-06-26 00:20:34 · 468 阅读 · 0 评论 -
ToolBar的setTitle()方法不生效解决方法
使用ToolBar的setTitle()方法设置标题时,总是不生效,然后使用了Activity 的setTitle()方法。但是有点不甘心,ToolBar的setTitle()方法就不能用吗?百度了一下,有两种方法: 1.在setSupportActionBar(titletoolbar);之前调用ToolBar的setTitle方法。 2.在Activity的onResume周期中调用。以上两原创 2016-06-26 10:13:00 · 7601 阅读 · 0 评论 -
ToolBar替代ActionBar
ToolBar不做过多的介绍,直接写如何使用。 1.在XML布局文件中加入ToolBar控件,用V7包里面的控件。否则只支持5.0以上的(在其它文章中看到的,没有去验证)。 2.(1)如果没有隐藏掉标题栏(ActionBar),就需要使用一个方法替换掉ActionBar,加入ToolBar。Toolbar toolbar = (Toolbar) findViewById(R.id.toolba原创 2016-06-26 11:33:50 · 1732 阅读 · 0 评论 -
onStart和onResume,onPause和onStop的不同--Android开发艺术探索
在《Android开发艺术探索》一书中学习到的知识。之前没有特别在意两者的不同。根据书中的内容做一个简单的总结。 onStart和onStop是从Activity是否可见的角度来回调的,onResume和onPause是从Activity是否位于前台来回调。理解这句话,首先要理解“前台”于“可见”的区别。准确的说,应该是“前台进程”与“可见进程”的区别。前台进行是与用户正在进行交互的进程,可见进原创 2016-07-25 21:07:23 · 1450 阅读 · 0 评论 -
Sqlite插入或更新语句-Replace
在第一次接收到数据时可以直接存放到数据,但是如果是接收修改过的数据,就要更新数据库。有时又无法判断是否存在该数据。在网上看到有的做法是先查询数据库是否存在该数据,如果存在则使用Updata更新,如果不存在则Insert插入。使用Replace语句更好的解决这个问题。 下面演示如何使用建立数据表,并使语句生效。 我使用Sqlite工具创建,和在android中创建有区别,没有_id字段为主键。原创 2016-07-05 21:33:52 · 9862 阅读 · 0 评论 -
基于百度定位获取当前城市请求天气信息
一个简单易懂的小例子。用到的知识点。1.基于百度定位SDK获取当前城市2.使用聚合数据提供的天气信息API3.异步发送位置信息请求天气数据百度定位SDK的使用不再详细介绍,参考百度地图提供的资料很容易配置。给出百度地图定位SDK用法连接。http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/key在代码中详细介绍public cla原创 2016-07-31 12:09:59 · 5877 阅读 · 0 评论 -
Bmob数据库查询结果为null
在用Bmob读取数据时,使用条件查询。获取到结果后可以打印objectid,但是获取里面的值为null。一遍遍的看官方文档,终于发现了问题。出现问题的环境:public class QuestionTable extends BmobObject { private String mquestion; private String mresult; private long原创 2016-08-28 16:01:15 · 4080 阅读 · 2 评论 -
App架构设计经验谈:接口的设计
原创文章,转载请注明:转载自Keegan小钢 并标明原文链接:http://keeganlee.me/post/architecture/20160107 微信订阅号:keeganlee_me 写于2016-01-07App架构设计经验谈:接口的设计 App架构设计经验谈:技术选型 App架构设计经验谈:数据层的设计 App架构设计经验谈:业务层的设计 App架构设计经验谈:展示层的设转载 2016-09-05 23:12:48 · 325 阅读 · 0 评论 -
融云IM报错connect should be called in main process
1.将融云IMKit SDK导入project后,在项目中添加这个module。修改AndroidManifast.xml<meta-data android:name="RONG_CLOUD_APP_KEY" android:value="z3v5yqkbv8v30" />2.按照官方给的Demo,继承一个Application类,初始化RongIM原创 2016-09-21 16:43:07 · 4237 阅读 · 1 评论 -
Android侧滑菜单栏SlidingMenu的导入与使用
近期项目中用到了侧滑栏,类似于QQ侧滑的效果,SlidingMenu是开源的侧滑菜单控件 下载地址 https://github.com/jfeinstein10/SlidingMenu1.导入并修改配置下载解压后,在AndroidStudio中File-New-Import Module导入解压文件中的library。导入之后编译时无法通过的,需要修改build.gradle文件中的部分内容。原创 2016-10-12 21:25:01 · 2501 阅读 · 1 评论 -
genymotion arm translation 1.1和支持5.0的包
1.1的用在4.X的Android上面,亲测可用。下载地址密码 8mc5.0的在翻墙下载的,因为没有5.0的虚拟机,没有测试,应该没有问题。下载地址密码 879e原创 2016-03-21 22:14:04 · 4846 阅读 · 2 评论 -
Android4.4之后发送或接收短信后自动删除问题
工作需要做一个发送短信后立即删除的功能,在网上查了大片资料。把关键代码贴出来public void onChange(boolean selfChange) { super.onChange(selfChange); { ContentResolver cr = getContentResolver(); String[] projection = new S原创 2016-02-27 16:46:18 · 2981 阅读 · 2 评论 -
Eclipse 无法启动Tomcat原因总结
在Eclipse中启动Tomcat总是报错,提示没有对Log目录没有文件权限,然后果断给所有权限, 启动又报错,这次提示端口绑定错误。用记事本打开Tomcat安装目录下的conf文件夹里面的server.xml文件。修改端口号,具体改为多少,可以查看一下自己没有使用哪些端口,一定不能端口冲突。在Eclipse中启动Tomcat总是报错,有几个原因,总结一下。1.Tomcat插件是否添加你所原创 2016-02-28 11:04:35 · 4869 阅读 · 0 评论 -
Android获取某应用所申请的权限
应用在执行某些动作时需要向系统申请权限,比如启动摄像头,打电话等。如何知道某个应用申请了哪些权限?在安装时候可以看到,也可以在权限管理的应用中看到。还可以写一个应用来获取。我这里把写死了。其实可以做一个对话框,输入应用的包名,然后获取该应用所申请的权限。代码不多,直接贴出来。package com.shengteng.checkpermissions;import android.原创 2016-05-29 19:55:52 · 2381 阅读 · 0 评论 -
AndroidStudio2.0安装Genymotion模拟器插件
工作需要从Eclipse转到AndroidStudio开发。所有需要重新配置开发环境。从Genymotion模拟器插件开始。之前Genymotion可以正常运行。记录一下在AS下如何安装Genymotion插件。其实只看图片中标记的顺序即可。简单说明一下。1.进入AS的设置选项。2.选择 Plugins 插件。点击浏览其它插件。3.在搜索框搜索Genymotion原创 2016-05-29 11:49:53 · 2792 阅读 · 0 评论 -
Android创建文件与备份文件
这段时间电脑被朋友借走了,没有写文章。晚上使用Kindle看看科技类的书籍,推荐《浪潮之巅》。代码不多,直接贴出来。public class MainActivity extends Activity { Button mCreateBtn; Button mCopyBtn; @Override protected void onCreate(Bundle savedI原创 2016-05-25 22:30:05 · 647 阅读 · 0 评论 -
一个Activity管理多个Fragment切换
先放效果图。有些时候需要整个页面改变,但是又没必要创建一个新的Activity,这时候可以使用这个方法。大致思路是,创建的第一个界面为主界面,通过这个界面打开其它的Fragment。主界面的Fragment是在MainActivity里面创建的,其它的Fragment是在主Fragment的java文件中创建。创建一个新的Fragment的时候把当前的Fragment隐藏,加入回退栈,这样按下返回键原创 2016-04-24 17:58:32 · 15254 阅读 · 0 评论 -
Android使用SQLCipher对加密数据库文件解密
上一章讲解了如何使用SQLCipher对数据库文件解密,下面讲下如何对加密后的文件解密。同样需要在github上面下载SQLCipher的解密工具sqlcipher-master.zip。需要在Linux环境下编译源码。下载地址:https://github.com/sqlcipher/sqlcipher 第一步:使用VMware Workstation搭建Linux虚拟机,并安装GCC编译器,s原创 2016-04-10 15:04:44 · 5274 阅读 · 2 评论 -
Android使用SQLCipher对数据库文件加密
查了好多资料,大多数都是抄来抄去,还有很多文章时间都是几年前的了。根据SQLCipher在github上的公开的资料,做一个教程。SQLCipher是对数据库文件加密,不是对数据库内容加密。这一点要分清楚。首先放出SQLCipher的github地址:https://github.com/sqlcipher第一步:下载SQLCipher在android上应用的例子,看看他是如何给android的S原创 2016-04-10 14:11:13 · 8790 阅读 · 3 评论 -
Android自定义Dialog多选对话框(Dialog+Listview+CheckBox)
先放效果截图 项目中需要有个Dialog全选对话框,点击全选全部选中,取消全选全部取消。下午查了些资料,重写了一下Dialog对话框。把代码放出来。public class MainActivity extends Activity { View getlistview; String[] mlistText = { "全选", "选择1", "选择2", "选择3", "选择4"原创 2016-03-27 00:04:25 · 9935 阅读 · 0 评论 -
Android ListView给每个Item显示不同颜色的字体
今天做项目中,要求根据不同的内容,给listview里面的textview显示不同的颜色。 网上百度了一下,大多数是讲点击Item时,改变Item的背景颜色。 重写SimpleAdapter的getview方法即可。公司要求项目保密,不能把完整代码贴出来。把大致方法贴出来,我懒得再整理了,有不明白的留言,我会尽自己所能给大家讲明白。 int lengh = mListTitl原创 2016-03-24 21:41:10 · 11041 阅读 · 2 评论 -
Genymotion设置桥接模式,和电脑连接同一路由
项目中用到socket建立连接,需要Genymotion虚拟机和笔记本在同一网段,但是Genymotion模拟器使用的是NAT网络连接方式,可以访问网络,但是与电脑不在同一网段。需要把Genymotion设置为桥接模式联网。让Genymotion和电脑处于同一网络中。下午看了好多教程和文章,大多数是virtual box虚拟机的桥接模式。虽然Genymotion是在virtual box上原创 2016-03-21 22:00:04 · 9658 阅读 · 0 评论 -
Eclipse中配置javah命令自动生成JNI头文件
首先要在CMD命令提示符下保证你输入的命令时可以生成头文件的我用的命令格式是D:\Test\jnitest javah -classpath /bin/classes;D:/android/sdk/platforms/android-16/android.jar -d jni com.example.jnitest.test在当前项目的根目录下输入的命令,可以生成头文件 ,但是太麻烦。原创 2016-03-08 23:32:00 · 2891 阅读 · 0 评论 -
android实现socket连接(服务器端)
服务器端运行在android手机上,和上一篇是一个Demo,大家注意给应用加权限,写的有点乱,有些变量没有用到。如果是和电脑进行通信,注意编码问题,我把两种编码都写出来了,有不明白可以留言。public class MainActivity extends Activity { EditText mContent;// 发送内容 Button mBtn;// 发送按原创 2016-03-07 22:59:26 · 2371 阅读 · 0 评论 -
android实现socket连接(客户端)
学习socket通信,做了一个Demo,两台手机之间建立socket通信,今天先放出client端,欢迎大家交流。public class MainActivity extends Activity { EditText mIP;// 输入的IP EditText mContent;// 发送内容 Button mBtn;// 发送按钮 Button mLogin;// 连接按原创 2016-03-07 22:51:35 · 1489 阅读 · 0 评论 -
R文件丢失无法找回的原因
这个问题遇到过好几次了,每次都是因为layout文件夹下XML文件的错误造成,一个是XML文件提示的语法错误,还有一个不易察觉的就是XML文件名不能有大写字母。原创 2016-03-13 10:03:26 · 492 阅读 · 0 评论 -
Socket连接时Input.available()报空指针错误
在使用socket获取输入流读取数据时,总是提示空指针。获取输入流getInputstream()和创建socket是在一个线程中执行,又创建一个线程处理输入流中的数据。然后就会报错。 public class ReceiveThread implements Runnable { @Override public void run() { while (true) {原创 2016-03-03 22:31:38 · 2097 阅读 · 0 评论 -
Genymotion无法启动,VM VirtualBox报错
今天工作中重装系统,然后重建开发环境,在安装Genymotion模拟器 的时候遇到两个问题。第一个问题报错,凡是出现这个问题,先用VM VirtualBox虚拟机启动,有个报错800045什么的,记不清楚了。这个问题是因为我们使用的是ghost系统,不是正版的微软系统,C:\Windows\System32目录下的uxtheme.dll文件没有通过软件的检测。如果你是32的原创 2016-02-29 20:44:05 · 1542 阅读 · 0 评论 -
NDK开发的工程无法在虚拟机打开,真机可以正常打开
使用NDK r9d ,建的是android 4.4工程,编译正常运行自己写的Demo报错dlopen("/data/app/com.fey.hellondk-1/lib/arm/libhello-jni.so", RTLD_LAZY) failed: dlopen failed: "/data/app/com.fey.hellondk-1/lib/arm/li原创 2016-02-28 18:21:24 · 1085 阅读 · 0 评论 -
AndroidStudio更改包名及更改包名后R文件丢失无法生成
二次开发需要修改包名,使用的是AndroidStudio开发工具。参考文章 http://www.cnblogs.com/Kyouhui/p/4632813.html 进行修改。注意:修改后,记得删除build文件,并clean project,然后 rebuild project。 R文件丢失无法生成问题。ctrl+H 全局搜索以前的包名,有些自定义的文件没有自动替原创 2017-01-10 10:54:28 · 6900 阅读 · 0 评论