
Android
文章平均质量分 56
l_vaule
植根于内心的修养;无需提醒的自觉;以约束为前提的自由;为别人着想的善良。
展开
-
安卓2048的游戏视图
public class GameView extends GridLayout{ private card[][] cardMap = new card[4][4]; private List emptypoints = new ArrayList<>(); public GameView(Context context, AttributeSet attrs, int defSty原创 2015-03-25 22:28:10 · 716 阅读 · 0 评论 -
关于Android应用的资源,国际化和资源自适应
这篇文章其实早就想整理了,主要原因就是我对于应用资源很不注意,很不注意这个东西,但是这个东西虽然不难,却很重要(尤其是在需要更改的时候)。如果从源代码来区分可以分为三大类:1.界面布局文件,xml文件,文件中每个标签都对应于相对的View标签。2.Java源文件。3.资源文件:主要以各种Xml为主,还可以包括一些图片,音视频等资源。如果要按照资源类型来分的话可分为如下两大类:原创 2016-05-08 21:07:47 · 2232 阅读 · 0 评论 -
Android中利用观察者模式对UrlConnection进行封装
public class HttpUtils{ private HttpCallback httpCallback; // 访问接口后的回调 private String path; // 接口路径 private String method; // 访问的方法 private Map data; private String content = ""; private MyTask原创 2016-04-24 09:44:11 · 414 阅读 · 0 评论 -
初探RxJava
首先到底什么是RxJava,RxJava是一个相应式编程框架,采用观察者模式,既然使用观察者模式,就一定少不了观察者和被观察者。RxJava 是一个开源项目,地址:https://github.com/ReactiveX/RxJava。还有一个RxAndroid,用于 Android 开发,添加了 Android 用的接口。地址:https://github.com/ReactiveX转载 2016-05-13 23:26:27 · 406 阅读 · 0 评论 -
华为手机调试安卓程序不打印Log的解决办法
拨号键盘输入*#*#2846579#*#*,然后在弹出的选择框中选择LOG设置,LOG打开。原创 2016-11-12 10:52:49 · 1109 阅读 · 0 评论 -
onStartCommand返回值
1、 START_STICKY 在运行onStartCommand后service进程被kill后,那将保留在开始状态,但是不保留那些传入的intent。不久后service就会再次尝试重新创建,因为保留在开始状态,在创建 service后将保证调用onstartCommand。如果没有传递任何开始命令给service,那将获取到null的in原创 2016-11-13 22:03:50 · 566 阅读 · 0 评论 -
Android事件分发机制解析
安卓的事件传递机制,是由Activity分发->ViewGroup分发->ViewGroup拦截->View分发->View响应,然后在逐级回退,如果中间有操作,则会提前消费或者回退,先看一下流程图。下面结合源码来说明这张图。首先由Activity的dispatchTouchEvent开始,,可以看到Activity的onTouchEvent触不触发完全由getWindow的sup原创 2015-10-15 16:16:06 · 602 阅读 · 0 评论 -
Android组件间传递消息
其实很多东西我们平时经常用,但是如果一旦被问到,很难立即想出来,或者都想出来。所以: 总结真的很重要!组件之间传递消息:1.我们可以使用Intent来传递intent 既可以直接传递简单数据,也可以用来传递序列化后的数据也可以通过bundle,放到intent来传递。intent 主要通过其过滤器来判断action来确定找到谁data,category来确定其使用环原创 2018-02-03 23:56:45 · 509 阅读 · 0 评论 -
Android命名规范
1.布局文件的命名:布局文件的命名规则是:“前缀_逻辑名”的方式,单词全部小写,例如:如:activity_xxx,fragement_xxx,dialog_xxx,item_xxx2.资源文件的命名:使用前缀_模块名_逻辑名称的方式如:btn_login.png,btn_login_normal.png等图标的命名以ic作为前缀,例如ic_share.png ic_lau原创 2014-10-22 17:56:20 · 716 阅读 · 0 评论 -
Eclipse开发ndk流程
1.写native方法。2.javah生成jni头文件(F:\EclipseWorkspace\BitmapTest\bin\classes>javah -classpath F:\Java\sdk-eclipse\platforms\android-23\android.jar;. -jni com.example.bitmaptest.BitmapUtils)。3.实现.h(ecl原创 2016-04-20 19:11:22 · 449 阅读 · 0 评论 -
adb常用命令
https://developer.android.com/studio/command-line/adb.html?hl=zh-cn#moveadb-devices 列出当前已经连接的模拟器或者设备。adb-s deviceId commandadb install -r xxx.apk adb uninstall xxx.apkadb push local remote 本地复制到远程ex: ...原创 2018-02-01 17:18:32 · 878 阅读 · 0 评论 -
Android的Handler详解
Handler的消息传递机制,实际上就是由handler将消息压到消息队列,并且把自身设置成msg的target,即msg.target = this。,由looper的loop方法不断取消息,取到消息后调用msg.target的分发,最后看是否是msg还是callback,如果是callback,则callback直接run起来,如果是消息,则调用handlermessage。下面结合源码说一下...原创 2015-10-22 19:09:21 · 499 阅读 · 0 评论 -
HandlerThread
先说下HandlerThread 是干嘛的:将looper转嫁到子线程(每创建一个handler都会为其匹配一个looper,默认looper属于主线程),拥有自己的消息队列,不会阻塞UI。说白了就是把消息发送到子线程的looper,后续handleMessage时不会阻塞主线程。借用网上的一个小实例:package com.app;import android.os.Bundle;import ...原创 2018-03-11 16:49:05 · 228 阅读 · 0 评论 -
Android进程间通信之Messenger
Messenger Reference to a Handler, which others can use to send messages to it. This allows for the implementation of message-based communication across processes, by creating a Messenger pointing to a...原创 2018-03-13 22:08:09 · 225 阅读 · 0 评论 -
adb 查看包名及activity相关信息
查看当前activity调用栈:adb shell dumpsys activity + 包名adb shell dumpsys activity activities查看当前windowadb shell dumpsys window w |findstr \/ |findstr name=只有apk的情况,可以使用aaptaapt dump xmltree ColaBox.apk Androi...原创 2018-03-20 20:34:08 · 3183 阅读 · 0 评论 -
adb获取android手机系统版本,已对应的api版本和硬件相关信息
原文链接:https://blog.youkuaiyun.com/zhuhai__yizhi/article/details/48003095https://blog.youkuaiyun.com/fasfaf454/article/details/51438743获取系统版本:adb shell getprop ro.build.version.release获取系统api版本:adb shell getprop ro...转载 2018-04-09 14:47:30 · 39480 阅读 · 0 评论 -
屏幕适配小结
获取屏幕像素信息的adb命令:adb shell dumpsys window displays dp:一个抽象单元,一个dp祖略相当于1px(对于160dpi的屏幕而言)sp:和dp差不多,但是可以根据用户调节系统字体来设置大小px:真实的像素。屏幕尺寸:屏幕尺寸指屏幕的对角线长度。单位是英寸,1英寸=2.54厘米屏幕分辨率:屏幕分辨率是指横纵向上的像素点数,单位是px屏幕是由像素点组成,1px...原创 2018-04-09 21:57:06 · 281 阅读 · 0 评论 -
使用ContentProvider实现数据共享
ContentProvider是实现不同应用程序间进行数据交换的标准API,ContentProvider以某种URI的形式对外提供数据,允许其他应用修改或访问数据。原创 2016-04-16 10:11:29 · 588 阅读 · 0 评论 -
监听ContentProvider内容改变
在开发ContentProvider的时候,不管操作增删改哪个方法,就会调用getContentResolver().notifyChange(uri,null);在监听其数据改变,则需要ContentObserver.public class MainActivity extends ActionBarActivity { @Override protected void onCrea原创 2016-04-16 10:39:05 · 500 阅读 · 0 评论 -
安卓2048的卡片类
public class card extends FrameLayout{ private int number = 0; private TextView lable; public card(Context context) { super(context); lable = new TextView(getContext()); lable.setTextSize(原创 2015-03-25 22:27:04 · 813 阅读 · 0 评论 -
安卓2048的初始化界面
public class MainActivity extends ActionBarActivity{ private TextView tvScore; private static MainActivity mainActivity = null; private int score = 0; public MainActivity() { mainActivity = t原创 2015-03-25 22:28:26 · 859 阅读 · 0 评论 -
安卓2048的前台界面
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_par原创 2015-03-25 22:30:24 · 716 阅读 · 0 评论 -
安卓如何画圆形
记得java里有个drawCircle方法是画圆的,安卓里也一样drawCircle方法:绘制圆形【功能说明】该方法用于在画布上绘制圆形,通过指定圆形圆心的坐标和半径来实现。该方法是绘制圆形的主要方法,同时也可以通过设置画笔的空心效果来绘制空心的圆形。【基本语法】public void drawCircle (float cx, float cy, float radius原创 2015-03-19 22:21:34 · 1684 阅读 · 0 评论 -
使用SurfaceView播放gif动画
SurfaceView:SurfaceView一般会与SurfaceViewHolder(相当于SurfaceView的一个管家)结合使用,SurfaceHolder用于向与之关联的SurfaceView上绘图,SurfaceView.getHolder()。SurfaceHolder提供了如下方法来获得Canvas对象。Canvas lockCanvas();锁定S~w对象,获取其c原创 2016-04-19 21:11:00 · 2102 阅读 · 0 评论 -
Android之初探RecyclerView
RecyclerView的出现是为了取代ListView和GirdView,因为其可以实现ListView和GirdView的效果,也可以拓展很多效果,而且RecyclerView也做了很多优化。其使用方法是先通过设置布局管理器来确定布局,然后在通过适配器来将数据和试图进行绑定。这里我举个类似于瀑布流的小例子。项目地址:http://download.youkuaiyun.com/detail/l_v原创 2016-05-12 19:32:02 · 410 阅读 · 0 评论 -
安卓自定义View之进步曲线
进步曲线哦import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.util.AttributeSet;i原创 2016-05-01 12:41:16 · 722 阅读 · 0 评论 -
浅谈Android支付宝快捷支付
1.在APP中选购商品2.生成支付宝支付订单3.提交订单4.输入支付密码进行支付准备:申请支付宝商家ID公司个体工商户商户ID商户收款的账号商户私钥与银联POS支付不同的是,支付宝快捷支付手机终端没有安装支付宝也能支付,这些jar包就相当于一个支付宝客户端的核心模块。我们使用时核心代码如下import java.io.U原创 2016-04-30 11:59:50 · 1171 阅读 · 0 评论 -
浅谈Android之webView及交互
记得有一段时间安卓的webview挺火的,很多都喜欢用h5来开发页面。不过相对于原声安卓,webview的缺点显而易见,慢,耗电,用户体验不好。或许对开发人员还好,因为可以跨平台(ios,安卓都能用),而且开发难度也不是很大。安卓本身的webview是基于webkit浏览器的,而如果用过支付宝或者微信其实就能发现,他们肯定是进行了很多改进,把网页一下拉就能看到xxx提供技术支持。下面这段代码介原创 2016-05-05 16:10:01 · 782 阅读 · 0 评论 -
广播接收者
BroadcastReceiver用于接收程序(包括用户开发的程序和系统内建的程序)所发出的Broadcast intent,与应用程序启动Activity,Service相同的是,启动BroadcastReceiver也只需要两步。1.创建需要启动的广播接收者的intent。2.调用context的sendBroadcast()或sendOrderBroadcast()方法来启动指定的广原创 2016-04-20 18:44:14 · 473 阅读 · 0 评论 -
Jni调用Date类产生时间
这里只贴出c代码JNIEXPORT jlong JNICALL Java_jni_JniTest_getTime(JNIEnv * env, jclass obj){ jclass cls = env->FindClass("java/util/Date"); jmethodID conmid = env->GetMethodID(cls,"","()V"); jobject obj1原创 2016-04-20 20:44:58 · 1994 阅读 · 0 评论 -
获取java方法签名
javap -s -p 包名.类名原创 2016-04-20 20:12:41 · 1677 阅读 · 0 评论 -
NDK使用log模块
点开Log类的源码,就会发现其内部也是使用了很多native方法,我们使用NDK,其中一方面就是让我们直接越过framework层,去调用原创 2016-04-20 19:33:16 · 1055 阅读 · 0 评论 -
Android内存泄露的可能原因
1.资源对象没关闭 如Cursor,file等资源。他们会在finalize(垃圾回收时调用的方法)中关闭,但这样效率太低。容易造成内存泄露。SqliteCursur,当数据量太大时容易造成泄露。2.使用adapter时,没有使用系统缓存的converView(一般情况下,adapterView都需要优化,不然很容易oom)。3.即使调用recycle()释放不在使用的Bitmap。原创 2016-04-20 09:57:28 · 415 阅读 · 0 评论 -
Android常见动画
一:逐帧动画1.AnimationDrawable与逐帧动画定义逐帧动画:只要在animation-list中使用item添加动画的帧,并指定每帧的时间即可。 AnimationDrawable代表的动画不是默认播放的,它提供了两个方法来启动和停止动画。start(),stop();一般用法为:final AnimationDrawable原创 2016-04-19 20:53:12 · 393 阅读 · 0 评论 -
Android的进程间通信----AIDL
AIDL(Android 接口定义语言)与您可能使用过的其他 IDL 类似。 您可以利用它定义客户端与服务使用进程间通信 (IPC) 进行相互通信时都认可的编程接口。 在 Android 上,一个进程通常无法访问另一个进程的内存。 尽管如此,进程需要将其对象分解成操作系统能够识别的原语,并将对象编组成跨越边界的对象。 编写执行这一编组操作的代码是一项繁琐的工作,因此 Android 会使用 AID...原创 2016-04-17 20:51:15 · 320 阅读 · 0 评论 -
adb启动Activity、activity、service以及发送broadcast的命令
原文链接:https://www.cnblogs.com/wytings/p/4093736.html一、启动activity:$ adb shell$ am start -n {包名}/{包名}.{活动名称}如:启动一个名叫MainActivity的活动# am start -n com.example.test/com.example.test.MainActivity 二、启动service...转载 2018-02-01 00:52:12 · 1406 阅读 · 0 评论