![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 78
JohnZhang_
天道酬勤
展开
-
ReentrantLock 加锁,解锁,加锁中断,公平锁,非公平锁源码分析
ReentrantLock 基本使用ReentrantLock lock = new ReentrantLock(true); // false 或无参非公平锁,true 公平锁lock.lock(); // 获取锁,如果获锁失败,线程进入阻塞(休眠)lock.tryLock(); // 尝试获取锁,失败不会阻塞lock.lockInterruptibly(); //获取锁,如果获锁失败,线程进入阻塞,支持获锁阻塞的中断退出 lock.unlock(); // 释放锁Reentran原创 2020-09-03 22:28:16 · 262 阅读 · 1 评论 -
HTTP 缓存策略(okHttp 的实现)
总流程代码// CacheInterceptor#interceptCacheStrategy strategy = new CacheStrategy.Factory(now, chain.request(), cacheCandidate).get();Request networkRequest = strategy.networkRequest;Response cacheResponse = strategy.cacheResponse;// CacheStrategy#Facto原创 2020-08-18 17:59:05 · 507 阅读 · 1 评论 -
解决升级 Android Studio 3.6.1 后无法运行 Java 代码的问题
问题最近升级了 Android Studio 到 V3.6.1 后发现之前创建的 Lib Module 无法运行纯 Java 代码了,部分错误信息如下:FAILURE: Build failed with an exception.* Where:Initialization script '/private/var/folders/q7/rlfldg551dx7_r90x2_1hcww...原创 2020-03-22 13:33:43 · 3260 阅读 · 0 评论 -
Android 签名(手势)控件
项目里有时会有那些要签名啊,或者要手绘的要求,为此就会要求有这样的控件存在,这里介绍两个方法:一、Android 自带的 GestureOverlayView,添加于API-4,主要是用于识别手势的。对于签名也可以完成大部分工作,但是有个问题:多笔画的时候,两个笔画之间间隔太久会自动清空前面所有笔画。我还么有找解决方法。使用很简单:在你的xml文件里添加这个控件就可以(一个透明层)原创 2013-05-23 11:12:05 · 3366 阅读 · 0 评论 -
Windows7下Java环境搭建(JDK环境变量配置)
Windows7下面Java环境的搭建是十分简单的,到oracle官网下载JDK安装包,安装在制定目录即可,最好把jdk路径和jre路径都放在同一个路径下。这里主要是一下JDK安装好后环境变量的配置,给自己留份笔记:我的电脑右键.属性.高级系统设置.(“高级”标签下)环境变量:(xp类似)在系统变量里新建,变量名:JAVA_HOME变量值:D:\Program File原创 2011-11-06 12:30:53 · 3241 阅读 · 2 评论 -
Android Java Timer & TimerTask 学习
Java中用Timer和TimerTask实现周期性任务或者定时(延时)执行任务,一般形式如下:// 声明一个类继承自TimerTask private class TimerTask1 extends TimerTask { int p = 1; @Override public void run() { // TODO Auto-gen原创 2012-03-09 17:01:42 · 2395 阅读 · 0 评论 -
Android http请求例子、Unicode转UTF-8 java代码收藏
Android项目经常是C/S模型的,因此需要向服务器发出http请求,收藏一个http请求的例子以便以后可以用。假设发出的请求使用get方法,服务器传回JSON数据,解析代码如下:HttpClient client = new DefaultHttpClient();HttpGet httpGet = new HttpGet(req_url);try { HttpRespons转载 2012-03-09 17:21:18 · 10817 阅读 · 3 评论 -
Java自定义jar库中加入第三方jar库
最近做的项目需要自己写个库供其他人使用,但是自己写的库又依赖于其他第三方库,因此在打包自己的库的时候需要将第三方库也导进去。网上看了很多方法,有些说需要自己编写manifest文件,如果懂那个文件的高手还好,但是不懂的就写不出来了。再后面我找到了一个eclipse的插件Fat Jar。Fat Jar其实就是把第三方Jar库里的.class文件都导出来后再导到你自己的Jar库中,不过不用我们原创 2012-04-06 15:44:24 · 5645 阅读 · 0 评论 -
Android 自定义控件属性,自定义Dialog定位
Android自定义控件的属性,网上文章已经很多,之前看了也照着写了,其中有一个就是要自定义一个xml的命名空间后然后再给自定义属性赋值,后来发现不知道什么时候开始Android把这个改了,统一用xmlns:app="http://schemas.android.com/apk/res-auto"然后在用app作为命名空间给自定义属性赋值,例如:app:myimage_sr原创 2013-05-23 14:41:32 · 11762 阅读 · 2 评论 -
Android TextView背景色、圆角、内部填充设置
实现效果:实现很简单,把TextView的android:background属性设置成自定义的一个xml样式文件。android:background="@drawable/textview_style"textview_style.xml文件里的内容: <padding android:left="5dp"原创 2012-01-02 21:46:55 · 54363 阅读 · 6 评论 -
使用 Jenkins 优化打包提测流程
涉及知识点JenkinsAndroid Studio(Gradle)蒲公英Jenkins我的理解,就是可以帮我们减少重复工作的一个流程化执行工具。详见百度安装 Jenkins我使用了最简单方式,下载纯的 war 文件,然后使用 java -jar jenkins.war 的方式执行 我用的 macOs 系统,至于为什么不使用 dmg 安装的后面补充说明...原创 2018-05-17 14:36:09 · 2953 阅读 · 0 评论 -
解决 Android N requires the IDE to be running with Java 1.8 or later
最近升级了一下IDE,升级到了AS 2.1.1,打开Layout Editor的时候遇到这个问题:Android N requires the IDE to be running with Java 1.8 or laterAS里面我们需要两个JDK:Project JDK & IDE JDK前者用于编译Java代码后者用于启动运行AS自己Project JDK可以通过file-> othe原创 2016-06-03 12:03:36 · 12436 阅读 · 1 评论 -
在Linux(Ubuntu)下安装Android设备的ADB/USB驱动
原文出处:http://esausilva.com/2010/05/13/setting-up-adbusb-drivers-for-android-devices-in-linux-ubuntu/如果你和我一样喜欢在Linux下开发,那么你会发现这篇指南是有用。当我为Android开发安装所需的东西时候,我遇到Linux不识别Android手机的问题,这花费了我一些时间找出如何使Linux识翻译 2012-04-06 17:42:32 · 18228 阅读 · 1 评论 -
Activity、Window、View的关系
Activity、Window、View的关系原创 2016-05-18 13:49:18 · 635 阅读 · 0 评论 -
Android ListView 第一次设置Adapter时候getView调用多次
之前遇到这个奇怪现象,记录一下:使用Listview并设置Adapter时, 会回调多次getView,比如我有4个items,按理说getView应该是调用一次(打出4个log),结果回调有4次(4*4个log)。原因:Listview的layout_height 为自适应:wrap_content,这个情况下,listview没办法确定用多少item的view来填充它自己,这迫使l原创 2013-11-11 11:04:52 · 6483 阅读 · 7 评论 -
Android Accessibility(辅助功能) 学习
Accessibility:许多Android使用者因为各种情况导致他们要以不同的方式与手机交互。这包括了有些用户由于视力上,身体上,年龄上的问题致使他们不能看完整的屏幕或者使用触屏,也包括了无法很好接收到语音信息和提示的听力能力比较弱的用户。Android提供了Accessibility功能和服务帮助这些用户更加简单地操作设备,包括文字转语音(这个不支持中文),触觉反馈,手势操作,轨原创 2013-06-24 10:46:06 · 65654 阅读 · 5 评论 -
Android EditText 取消复制粘贴功能、取消横向全屏编辑功能
在做一些安全性的软件时候常常要考虑取消 EditText 上的复制粘贴功能以确保安全性。下面就记录了这个方法:首先在API-11以下的版本很简单,只需要在Xml布局文件或者用代码把长按属性设置成false就可以。editText.setLongClickable(false); // Xml layout file android:longClickable="false"但是如果在A原创 2013-05-21 15:06:41 · 10294 阅读 · 0 评论 -
Android HttpURLConnection 基础使用
最基本的使用代码:(访问baidu首页)HttpURLConnection urlConnection = null;try { URL url = new URL("http://www.baidu.com/"); urlConnection = (HttpURLConnection)url.openConnection(); InputStream in = new Buf原创 2013-05-20 15:35:57 · 23869 阅读 · 3 评论 -
HttpURLConnection 因Android版本不同而导致的Bad Request问题,在2.0+不行,4.0+可以
之前在这个问题上纠结了很久,也换httpClient试过,但是最后居然被细节打败了:原文出处:http://stackoverflow.com/questions/15030201/issues-with-httpurlconnection-with-post-on-android-2-2?rq=1其实原因很简单,在给HttpURLConnection 设置request属性的时候转载 2013-05-16 15:04:41 · 3112 阅读 · 1 评论 -
Android 资源文件中的符号含义与说明
一、@ 代表引用资源1.引用自定义资源。格式:@[package]:type/nameandroid:text = "@string/hello"2.引用系统资源。格式:@android:type/nameandroid:textColor="@android:color/opaque_red"(@android:type/name 是 @[package:]type/转载 2012-04-10 16:17:33 · 4192 阅读 · 0 评论 -
Android 自定义过滤搜索框
简单的说就是ListView上面有一个SearchBox,然后searchbox里输入内容后对下面listview进行过滤。涉及的控件:ListView必须有,EditText用来自定义SearchBox大概就是这样: 先看这个有图片的EditText,实现方法有两个,一是用相对布局RelativeLayout + ImageView + EditText。原创 2013-04-14 17:45:33 · 15027 阅读 · 8 评论 -
Android UI 利用Drawable Shape给控件加边框/立体效果
在软开中,经常需要对原生的控件UI进行修改,最近项目由于UI没到位,所有有些带边框的有立体效果的UI要自己实现,实现方法是用XML写Shape。关于Drawable Shape XML的详细内容官方API doc提供的还是挺详细的:http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape原创 2013-04-18 11:20:42 · 7689 阅读 · 0 评论 -
Android MediaRecorder视频录制,多分辨率调节
我做毕业设计时候需要实现先拍摄后上传的功能,还要支持多分辨率,虽然MediaRecorder的教程很丰富,但是实现起来却一波三折,这里记录下来的代码也只是在我自己的2.3的Android上跑起来没有问题。在有些Moto的机子上会失败,具体原因还未分析出来。直接上代码:根据MediaRecorder的状态package net.john.media;import java.io.原创 2012-01-02 14:30:46 · 14179 阅读 · 4 评论 -
Android PendingIntent Notification
首先,我感觉在实现中PendingIntent感觉就是Intent的包装。它的三个实例化方法:getActivity(Context, int, Intent, int)getService(Context, int, Intent, int)getBroadcast(Context, int, Intent, int)感觉是保存当前的Activity的Context,然后在外原创 2012-03-23 18:06:43 · 2341 阅读 · 0 评论 -
Android AlarmManager
Android开发中除了使用Timer和TimerTask开发定时任务外,还可以使用系统自带的Alarm服务。之前有比较一下Timer和AlarmManager来刷新界面数字,发现用Timer的休眠了手机后时间会变慢,所以如果要开发时间精准比较高的手机程序还是使用系统自带的AlarmManager吧。使用AlarmManager一般代码: mAlarmManager =原创 2012-04-17 17:10:07 · 3864 阅读 · 0 评论 -
Android 推送之原理与初触Androidpn(Android Push Notification)
由于最近项目中涉及到了android推送,所以看了一些关于android推送方面的东西,总结到后面我们知道android推送的实现可以归结为3种:1、POLL,拉。大致思路为向服务器定时的发送请求,然后自己让服务器返回信息。优点:实现简单。缺点:实时性差。如果定时间隔小连接数又多,对服务器会有高压力要求。据说还会费电……不知道是不是真的。2、SMS,彩信方式。据说是拦截彩信原创 2012-04-03 22:31:38 · 33660 阅读 · 4 评论 -
Android APK反编译
首先需要两个工具:dex2jar和JD-GUI下载地址:dex2jar下载地址:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zipJD-GUI下载地址:windows版:http://laichao.googlecode.com/files/jdgui.zipLinux版:http://l转载 2012-01-08 16:06:07 · 1104 阅读 · 1 评论 -
Android 手机中国移动网络接入点设置
接入点参数如下:(1)cmnet名称:cmnet接入点名称:cmnet代理:默认(未设置)端口:默认(未设置)用户名:默认(未设置)密码:默认(未设置)服务器:默认(未设置)MMSC:默认(未设置)彩信代理:默认(未设置)彩信端口:默认(未设置)彩信协议:默认(WAP 2.0)MCC:默认(460)MNC:默认(00)身份验证类型:(无)转载 2011-01-23 15:34:00 · 121856 阅读 · 0 评论 -
Android 环境搭建(Windows7)
Android环境搭建需要什么?1:IDE(Integrated Development Environment),集成开发环境——Eclipse下载地址:http://www.eclipse.org/downloads/ 2:JDK(Java Development Kit),Java开发工具包,Android上的软件都是Java开发的,JDK必须下载地址:http://ww原创 2011-05-07 15:33:00 · 2364 阅读 · 0 评论 -
Android UI 利用Seekbar模拟Iphone滑块解锁
之前项目里涉及到的,网上找实现方案没找到。后来自己用SeekBar模拟出来了。原理很简单。注册SeekBarChangeListener,再回调函数里控制滑块的变化。当把滑块移到0-70的范围的时候,向下移动一个常量值,直到0。当在70-100范围,向上移动一个常量值,直到100。移动的代码用两个Runnable,在用Handler传递。直接贴代码:public class S原创 2013-05-03 13:42:25 · 2064 阅读 · 0 评论 -
Android 如何使用juv-rtmp-client.jar向Red5服务器发布实时视频数据
这篇文章是回答我自己在百度知道上提出的问题的,真痛恨那些百度知道上面不好好回答到处灌水的人。(居然还帮我选了最佳答案,难道是我百度密码被盗了)问题:http://zhidao.baidu.com/question/348916603.html?oldq=1使用juv-client-client.jar主要是尽快地完成毕业设计里面手机端向网页端发送实时视频的功能,由于实习和做毕业设计的时原创 2012-01-03 15:14:16 · 22750 阅读 · 97 评论 -
Android 国际化(i18n)
Android国际化功能可以依赖系统选择的语言然后对应转载不同的资源文件包:Android app里的文字资源图片都是放在 res 文件夹下面。以文字为例:文字放在了 res/values里,通过系统语言选择语言包只要添加对应的语言包即可,如中文简体:在res目录下添加values-zh-rcn简单解释一下,zh为中国,rcn中文简体(r估计是region:地区),因为中文繁体(台湾)转载 2011-11-09 18:51:06 · 4185 阅读 · 0 评论 -
Android 推送之Androidpn项目分析(一)
整个项目有如下一些java文件:由于项目是基于asmack.jar的,因此文件数量已经是不多了。随便一提的是asmack.jar 是用于android上实现聊天室的库虽然文件有这么多,但是类之间的调用关系,以及类的作用可以描述如下图:‘+’ 号处展开:以及原创 2012-04-05 20:08:08 · 17337 阅读 · 6 评论 -
Android 开发技巧之Log写入文件
在Android开发的时候经常会遇到手机offline,影响日志的查看与分析。为此,我写了一个简单的类用于将日志写入文件中,便于以后调试的时候可以拿来使用:package org.test;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOExc原创 2012-04-19 16:51:09 · 16267 阅读 · 1 评论 -
Android 开发技巧之Log发送UDP报文,Socket编程
和把Log写入文件的原因相同:http://blog.csdn.net/wyzxk888/article/details/7478152就是因为Android开发过程中会出现手机offline,为了达到更加实时的查看日志信息,可以使用Java提供的Socket相关类,通过不断的发送UDP包达到效果。手机端同样是一个单例类,用于发送日志消息:package org.test;im原创 2012-04-19 21:47:09 · 3132 阅读 · 1 评论 -
Android Twitter分享,即Twitter授权Oauth然后推文
最近接触的项目要实现Twitter,Facebook,Email的分享功能。当然Android可以简单的用Intent调用第三方App实现这些功能。但是如果需求变态需要你自己写一个分享功能呢?先介绍一下Twitter的分享:Twiter这里我使用了twitter4j-core-android-2.2.6.jar这个是给android用的twitter4j的精简包,体积小。授权(Oaut原创 2012-10-12 16:26:12 · 14043 阅读 · 8 评论 -
Android 通过samples\android-x\BluetoothChat学习蓝牙操作
最近帮别人写了一个东西需要用到蓝牙共享数据,发现Android SDK里的例子里的BluetoothChat——蓝牙聊天软件代码写得不错,就学习分析了一下。项目java文件3个:BluetoothChat:主界面,显示聊天信息BluetoothChatService:里面有3个主要线程类,AcceptThread:蓝牙服务端socket监听线程.。ConnectThread:蓝牙socke原创 2012-05-07 19:20:55 · 14316 阅读 · 14 评论 -
Android 自定义AlertDialog并通过AlertDialog修改TextView的值
点击按钮“E”跳出AlertDialog进行TextView的修改:button_edit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub LayoutInflater la原创 2012-01-02 22:06:42 · 7203 阅读 · 0 评论 -
Android ActivityGroup和ViewFlipper实现两个Activity滑动(animation.translate)切换
之前在公司做一个Android应用的时候需要实现一个滑动注册登入界面,上网找了很久都没有相关资料,最后看了若干代码和自己研究之后终于实现了。小计一下:Demo结构图:其中,ActivityGroupDemoActivity是主显示界面,继承了ActivityGroup,ActivityOne和ActivityTwo分别是要切换的两个Activity。Anim文件夹里是4个滑动动原创 2012-01-01 15:02:30 · 7229 阅读 · 15 评论