![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android进阶
文章平均质量分 50
思益炫
五年Android开发经验,自学游戏开发
展开
-
Android项目导入时,出现的Could not write file 。。。。。。.classpath错误解决办法
昨天再做android的3D图360度全景图时,从http://code.google.com/p/panoramagl-android/downloads/list网站下载了现有的demo,导入到Eclipse中后选择了相应的API后,红叉的项目错误没有了。 工程列表也无任何错误了。但出现了这样的提示框错误说明的是.classpath这个环境文件不能写。随后,查看工程文件主目录下的.cl原创 2012-08-07 15:45:13 · 16529 阅读 · 4 评论 -
java线程当中 sleep() join() yield()方法的简单比较以及如何保护共享数据介绍
1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是如果有Synchronized同步块,其他线程仍然不同访问共享数据。注意该方法要捕获异常比如有两个线程同时执行(没有Synchronized),一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线程转载 2014-01-03 14:21:37 · 1637 阅读 · 0 评论 -
Android AIDL使用详解
1.什么是aidl:aidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口icp:interprocess communication :内部进程通信 2.既然aidl可以定义并实现进程通信,那么我们怎么使用它呢?文档/android-sdk/docs原创 2014-07-17 16:32:58 · 1859 阅读 · 0 评论 -
Android 零基础学习之路
第一阶段:Java面向对象编程1.Java基本数据类型与表达式,分支循环。 2.String和StringBuffer的使用、正则表达式。 3.面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收;构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类,Java的垃极回收机制,Javadoc介绍。 4.对象实例化过程、方法的覆盖、final关键字、抽象类、接口、原创 2014-07-24 09:06:39 · 3951 阅读 · 0 评论 -
手机应用程序设计应该避免的5个问题
智能手机已走进人们生活的方方面面,优秀的手机应用程序都有类似的特点:设计优雅,便于使用,并且满足用户需要。最糟糕的应用程序是以千奇百怪的方式呈现,让消费者像张二的和尚摸不到头脑。以下五点我们应该引以为戒,避免在应用程序设计中再犯。 1.避免激进主义 喜欢自己设计的应用程序无可厚非,但是不可想当然的强加与他人。太多功能或者应用加入到设计中,可能会因为在某种程度上加大应用程序的复杂性,而不转载 2014-07-10 16:26:14 · 1240 阅读 · 0 评论 -
android蓝牙协议名词解释 OPP HFP HDP A2DP PAN
各种蓝牙协议的全称:OPP:对象存储规范(Object Push Profile),最为常见的,文件的传输都是使用此协议。HFP:(Hands-free Profile),让蓝牙设备可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要视蓝牙耳机及电话是否支持。HDP: HDP (Health Device Profile) 蓝牙医疗设备模式 可以创建支原创 2014-08-06 11:22:10 · 7956 阅读 · 0 评论 -
使用代码 如何限定一个layout中主容器(父布局)的大小
这两天,因为要做一个自适应多分辨率的软件,项目中,涉及的布局得通过XML与代码相结合布局方式,容器的大小在代码中限定,即通过调用Layoutparams来限定,有一个原则使这样的: 子元素的LayoutParams是由父元素决定的。可是各个XML最上面一层的容器通过Layoutparams来限定时,不知道父元素类型(LinearLayout、RelativeLayout等等)。最后总是报错。后来原创 2012-08-31 15:59:53 · 3144 阅读 · 0 评论 -
简单图片加密
现在大部分android应用的图片资源,被反编译后就可以直接拿来用,如果不想让自己的图片资源直接被反编译后使用,首先想到的应该是把图片加密。这里笔者抛砖引玉,草草写了一个对图片进行简单加密的方法,希望对各位看官有用。首先是加密部分,这里使用的是简单的异或来将图片进行加密。新建一个java project或者干脆直接用文本文件写下下面的代码,然后在命令行执行,代码如下:import java转载 2012-08-14 14:12:47 · 6473 阅读 · 0 评论 -
java.lang.IllegalArgumentException: pointerIndex out of range 问题的两种解决办法
在做多点触控放大缩小,操作自己所绘制的图形时发生这个异常,如果是操作图片的放大缩小多点触控不会出现这个错误这个bug是Android系统原因 所以第一种方式是:修改frameworks\base\core\jni\android_view_MotionEvent.cpp的android_view_MotionEvent_nativeGetAxisValue方法注释掉if (原创 2012-09-07 11:54:22 · 26478 阅读 · 6 评论 -
adb 查看数据库
以防忘记——让它留点痕迹1、运行输入 adb shell (前提是模拟器正在运行) 权限不够的话加: adb root2、进入命令界面后 输入 ls 指令 会列出文件的目录 3、cd 进入你想要的目录里 (在Eclipse中的File Explorer中的data/data可以找到对应的数据库文件.如:cd com.android.providers.contacts)4、一层转载 2014-10-20 11:03:12 · 4174 阅读 · 0 评论 -
编辑xml布局时没有出现代码提示功能的解决办法
Q: 编辑xml布局时没有出现代码提示功能 A: 用界面编辑器打开可以解决原创 2013-01-09 14:38:45 · 1868 阅读 · 0 评论 -
如何在程序中获得应用程序的包名以及其他
ResolveInfo rl = this.getPackageManager().resolveActivity(getIntent(), 0); System.out.println("包名: " + rl.activityInfo.packageName);原创 2012-12-05 17:24:52 · 1754 阅读 · 0 评论 -
java多线程当中wait notify notifyAll的使用
在多线程的情况下,由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。wait与notify是java同步机制中重要的组成部分。结合与synchronized关键字使用,可以建立很多优秀的同步模型。synchronized(this){ }等价于publicsync原创 2014-01-03 16:01:32 · 1427 阅读 · 0 评论 -
Ubuntu下 解决adb server is out of date. killing... ADB server didn't ACK
使用adb时, 越来越多的人出现了 adb devices 命令长时间无响应、adb start-server 失败、eclipse adt初始化时卡在dbms-init上等现象。它们的根本原因均在于,adb server所使用的5037号端口被占用。一种常见的解决方法是:找出占用5037端口的程序,然后杀掉它。使用:netstat -aon | grep "5037" 来原创 2015-10-08 14:18:08 · 2690 阅读 · 0 评论 -
如何开发电子书应用
有一个开源项目FBREADER,许多阅读器项目会基于它进行第二次开发做出自己的应用来。如果你想研究一下FBREADER的目录结构, 可以在这里看到:http://www.docin.com/p-402694719.html由于android的特性,扫描时,肯定需要异步进行。数据信息放在SQLITE数据库中,如每本加载的一本书就是一条数据库信息。其中我这里有一个阅读器源码:http:原创 2015-12-24 13:18:56 · 1068 阅读 · 0 评论 -
如何利用Android特点及设计模式 设计一个网络下载功能
Android下载功能,需要考虑异步加载, 此文章中使用的是在后台开启一个服务(A) ,服务中开启一个线程去进行下载. 考虑到MVP模式的广泛使用,现在Android开发越来越趋向于接口编程. 所以利用接口(B) 方法来进行相关的反馈.通过这些反馈发起广播,在UI界面端通过接收广播(C) ,来发送UI更新的消息.UI界面中通过处理消息 (D) 来进行界面更新.下面是服务(A) 中主要代码:原创 2016-11-16 17:52:46 · 513 阅读 · 0 评论 -
如何实现TextureView或者SurfaceView 预览框为圆角
项目中,视频预览界面框为圆角;但发现是使用的Renderer渲染的方法进行的,的确可以有圆角效果。但有个问题是:我的视频源与要显示视频的预览框的长宽比率不同,预览框需要满屏看到视频源,如果不做处理,视频源只能通过压缩来显示。造成了视频的变形,如果不拉伸处理,那么就进行裁剪处理,需要对视频进行Matrix操作,如移动,伸缩处理。进行这些处理后,渲染的圆角效果就不再出现了。所以通过Rend原创 2017-07-26 10:19:58 · 16566 阅读 · 7 评论 -
Eclipse cannot be resolved错误的解决
今天新写了一个类,要引用的时候,总报cannot be resolved错误, 按 Ctrl + Shift + O 键可以解决原创 2013-11-13 18:10:40 · 7976 阅读 · 1 评论 -
获取网络数据中的数组显示成ListView的简单流程
定义一个线程池 ExecutorService pool = Executors.newFixedThreadPool(15);运用线程获取网络数据 即编辑相关的访问方法以及参数 public static String sendDataByHttpClientPost(String url, List parameters) throws Exception { Ht原创 2013-11-01 17:45:21 · 6031 阅读 · 0 评论 -
GC垃圾收集器概述
一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何和GC进行有效的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等。只有全面提升内存的管理效率,才能提高整个应用程序的性能。 本篇文章首先简单介绍GC的工作原理,然后再对GC的几个关键问题进行深入探讨,最后提出一些Java程序设计建议,从GC角度提高Java程序的性能。GC的基本原理Java的内存管理实转载 2013-01-16 17:45:27 · 1283 阅读 · 0 评论 -
android 关于3D 360度全景图demo错误的解决办法
从网站上,下载了一个3D 360度全景图的demo。在此demo中,需要导入一个PanoramaGL.jar的第三方类库,所以必须导入,那么怎么导入呢?必须使用UserLibraries的方式来进行导入,以防APK与JAR文件没有绑定到一起。即步骤为右键工程,-1、Build path,-2、java build path,选择libraries-3、在右边的按钮中点击原创 2012-08-07 15:41:47 · 4409 阅读 · 5 评论 -
全面解析SurfaceView的原本定义
SurfaceView的API介绍Provides a dedicated drawing surface embedded inside of a view hierarchy. You can control the format of this surface and, if you like, its size; the SurfaceView takes care of placin翻译 2012-08-14 17:27:02 · 1538 阅读 · 0 评论 -
在代码中编写布局--如Layout_Gravity、RelativeLayout中的align相对属性
你好!最近在做一个Android 3D全景图的项目,发现其实如果在代码中编写布局将可以更好的自适用多分辨率。 如一个平板分辨率为1280x800,但要显示的程序窗口只要1024x768且要在中央,此时设置最前父布局的Layout_Gravity属性为Center,代码中如何写----LinearLayout.setGravity(Gravity.CENTER)就可以了。 Rel原创 2012-08-10 15:11:49 · 7457 阅读 · 0 评论 -
如何设置View 无法得到触碰
View.setEnabled(false); View无法得到触碰,而View下层的控件依然能得到触碰 (OnTouchEvent)原创 2012-08-29 10:21:20 · 1816 阅读 · 0 评论 -
setBackgroundDrawable与setImageDrawable的区别
ImageView中的属性方法 setBackgroundDrawable(drawable) 代表以这个drawable为背景来填充ImageView的宽高 及ImageView多高多宽,drawable也相应放大至多高多宽setImageDrawable(drawable) 代表以这个drawable的实际大小放到ImageView中,并不会放大drawable的实际大小原创 2012-09-05 09:47:02 · 18251 阅读 · 2 评论 -
Canvas类介绍以及相关方法
Canvas,在英语中,这个单词的意思是帆布。在Android中,则把Canvas当做画布,只要我们借助设置好的画笔(Paint类)就可以在画布上绘制我们想要的任何东西;另外它也是显示位图(Bitmap类)的核心类。随用户的喜好,Canvas还可设置一些关于画布的属性,比如,画布的颜色、尺寸等。Canvas提供了如下一些方法: Canvas(): 创建一个空的画布,可以使用setBitm原创 2012-10-31 17:59:35 · 3249 阅读 · 0 评论 -
Android中Context详解
给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法 ; 说它陌生,完全是因为我们真正的不懂Context的原理、类结构关系。Context,中文直译为“上下文”,SDK中对其说明如下:Interf转载 2012-11-07 15:17:36 · 2170 阅读 · 0 评论 -
context.getSystemService(context.LAYOUT_INFLATER_SERVICE)调用时报NullPointerException
LayoutInflater inflater = (LayoutInflater) context .getSystemService(context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate(R.layout.home_select_list, null);这行报空指针,可能原因为,这个适配器调用构造函数实例化时:原创 2012-11-13 11:23:48 · 15499 阅读 · 2 评论 -
ADT版本号超过17后,所遇到的问题,如导入项目没有Android Dependencies目录、jars包导入的解决办法
Android Dependencies目录建立解决办法: 网上下载的demo导入第三方包运行后Android: NoClassDefFoundError的错误,原因是第三方的jar包并没有打包进apk里,运行是肯定要出错的。网上百度了N久,都是说先移除之前的Libraries,再将lib更名为libs的做法。今天是遇到邪门了,照做还是运行报错。后来发现直接add的jar包还是原创 2012-12-05 11:29:22 · 12430 阅读 · 1 评论 -
怎样实现ListView的item显示 高亮显示默认Item
分两步实现:一、首先定义一个全局的int变量作为你选择的item标记,如 int currentItem;在ListView里setOnItemSelectedListener方法里:listview.setOnItemSelectedListener( new OnItemSelectedListener() { public void onItemSelected(Ada原创 2012-11-15 17:48:22 · 2687 阅读 · 0 评论 -
在应用程序运行时,按HOME键返回到手机桌面,背景音乐怎样自动关闭
在公司做一个项目时,要添加背景音乐。项目当中有多个Activity。将背景音乐放在一个Service当中。但问题是:当在不是应用程序的首个Activity按下HOME键退出后,音乐依然播放,Service没有调用到StopService()方法。其实平常许多网络上的APK也同样有这样的问题。所以查了相关资料有个方法比较有用:可以设置个全局变量 static boolean isBehind原创 2012-12-14 14:34:14 · 6499 阅读 · 4 评论 -
给对话框设置大小后怎样快捷的关闭对话框
当我们使用如下代码给一个对话框设置大小后,AlertDialog dialog = new AlertDialog.Builder(DrawHomeActivity.this) .setTitle("标题").setView(view).show(); WindowManager.LayoutParams params = dialog.getWindow()原创 2012-12-14 14:07:58 · 1875 阅读 · 0 评论 -
Android开发:在onTouchEvent中处理任意时间的长按事件
Android提供了GestureDetector类来处理一些常用的手势操作,比如说 onLongPress,onFling 等。但这里不使用GestureDetector,而是直接在自定义View重写的onTouchEvent中进行处理。欲实现的效果是:当手机按住屏幕时,如果在指定的时间内没有移动(如500毫秒),那么进入长按模式,此时手指在屏幕上移动都算作长按模式。如果手机按住屏幕就立马移原创 2012-12-17 19:08:48 · 26905 阅读 · 6 评论 -
android.content.res.Resources$NotFoundException错误的解决办法
EditText.setText(8); 当使用上面这样的代码时,将报错, 原因是将 这里的8 看为是资源。 正确的使用方法可以这样:EditText.setText(8+"");原创 2012-12-21 10:40:57 · 3722 阅读 · 2 评论 -
Field requires API level 5 (current min is 4)等相关错误的解决
有时候,你建立Android Project的时候,选择较低的 min API Level,在程序中复写(@Override)某个基类的方法时,会出现错误提示,诸如:Field requires API level 5 (current min is 4)。意思是这个复写方法不支持你的min API Level 4,只支持min API Level 5及以上,你可以通过调高min API Le原创 2013-01-06 16:09:11 · 3267 阅读 · 0 评论 -
Android 内存优化的几点知识
不少人认为JAVA程序,因为有垃圾回收机制,应该没有内存泄露。其实如果我们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。如果我们的java运行很久,而这种内存泄露不断的发生,最后就没内存可用了。当然java的,内存泄漏和C/C++是不一样的。如果java程序完全结束后,它所有的对象就都不可达了,系统就可以对转载 2013-01-29 17:16:31 · 1538 阅读 · 0 评论 -
如何将控件放到指定位置上
FrameLayout.LayoutParams params = (android.widget.FrameLayout.LayoutParams) mLinearLayoutLeft.getLayoutParams(); params.setMargins(left, top, Right,Bottom); mLinearLayoutLeft.setLayoutParams(param原创 2017-08-04 17:35:41 · 1705 阅读 · 0 评论