- 博客(448)
- 资源 (4)
- 收藏
- 关注

转载 阿里面试
Hashmap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。 HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用 C
2017-07-31 22:38:51
362

转载 android内存泄露
不少人认为JAVA程序,因为有垃圾回收机制,应该没有内存泄露。其实如果我们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。如果我们的java运行很久,而这种内存泄露不断的发生,最后就没内存可用了。当然java的,内存泄漏和C/C++是不一样的。如果java程序完全结束后,它所有的对象就都不可达了,
2014-05-26 14:54:42
993

转载 android面试基础
1.assets:不会在R.java文件下生成相应的标记,assets文件夹可以自己创建文件夹,必须使用AssetsManager类进行访问,存放到这里的资源在运行打包的时候都会打入程序安装包中,2.res:会在R.java文件下生成标记,这里的资源会在运行打包操作的时候判断哪些被使用到了,没有被使用到的文件资源是不会打包到安装包中的。res/raw和assets文
2014-05-26 14:47:04
973

转载 android Activities 栈讲解
Activities and Tasks前面提到了,一个activity可以启动另一个activity,包括定义在不同的application中的activity。假设你希望用户显示某个地方的地图。已经有一个activity可以做这件事情,因此你的activity只需要把一个intent object设置好并传递给startActivity()就可以了。地图浏览器会显示地图。当用户按下BAC
2014-03-15 22:56:46
656

转载 动画加载方式
Tween动画加载的两种方式:1, mLeft = (ImageView)findViewById(R.id.imageLeft);AnimationSet anim = new AnimationSet(true);TranslateAnimation mytranslateanim = new TranslateAnimation(Animation.RELATIVE_TO_S
2013-11-10 12:38:26
654

转载 Android 启动流程分析(一)
一, 问题的提出Android启动流程需要处理关键进程的启动,java世界的生成,各种服务的注册加载,还是比较复杂的。在实际应用中,我们常会遇到诸如,开机启动不了,启动时间过长,应用莫名崩溃的问题。分析启动流程,可以帮助我们快速定位这些问题,找到解决问题的思路。二,Init 进程1. init简介Init进程是Android在用户空间的第一个进程,总的来说,它会解析ini
2013-11-01 23:25:20
761

转载 Binder详解
深入分析Android Binder机制(远程对象访问) 一、 介绍Binder是什么?它可以叫作:IPC、RPC、线程迁移、远程对象访问,本文中理解它为远程对象访问更贴切些,简而言之就是一个进程能访问另一个进程中的对象,调用该对象的方法,就好像对象在自己的进程中一样,这种访问是同步的访问,当然Binder也能实现异步的通信。Binder基于C/S架构:Binder
2013-11-01 20:38:31
15302

转载 Service和Thread的关系
以下内容都是转载,写的很好,我记录下来,记性不好。不少Android初学者都可能会有这样的疑惑,Service和Thread到底有什么关系呢?什么时候应该用Service,什么时候又应该用Thread?答案可能会有点让你吃惊,因为Service和Thread之间没有任何关系!之所以有不少人会把它们联系起来,主要就是因为Service的后台概念。Thread我们大家都知道,是用于开启一个子线
2013-10-31 16:55:22
1095

转载 android handler解析
Android主线程是线程不安全的,也就是说,更新UI只能在主线程中更新,子线程中操作是危险的.这个时候,Handler就出现了.,来解决这个复杂的问题 ,由于Handler运行在主线程中(UI线程中),虽然handler是异步的,但是并未创建一个新的线程。它与子线程可以通过Message对象来传递数据,handler可以计划任务,可以线程间通讯。这要注意了,一个handler的实例只
2013-07-13 20:19:49
625

原创 Android之Service与IntentService的比较
耗时的工作在应该放在单独的线程中做,避免用户界面阻塞。例如:文件I/O,网络访问。service在后台运行,不是一个独立的进程,也不是一个独立的线程。它存在于应用程序进程的主线程中。如果需要service做一些例如处理网络连接等耗时操作,应该放到一个单独线程中。所以启动服务,中止进程,服务会停止。启动服务,不用多线程,界面将会阻塞。一旦启动,即使启动它的对象销毁了,仍然在运行。只启动,不返
2013-06-27 23:43:29
557

转载 andorid sp
template class ANDROID_API Singleton 模板单例类{public: static TYPE& getInstance() {//static 构成单例类很重要 Mutex::Autolock _l(sLock); TYPE* instance = sInstance; if (inst
2013-06-16 22:31:41
648
转载 java内存分配
Java会将源代码中的字符串常量存储到常量池中。也就是说,当你这么写的时候:String a = "I am a string";String b = "I am a string";变量a和变量b是同一个值。这不只是说它俩的值是一样的,而是说就是同一个字符串对象,a==b的结果是true。只对字符串以及小的整型或者长整型有效。对象池对象驻留需要一个对象池。当你需要驻留一个对象
2014-05-26 13:29:13
701
原创 packageinfo,resolveInfo,applicationInfo 等区别
首先我们来看一下PackageItemInfo,它是包含了一些信息的基类,它的直接子类有:ApplicationInfo、 ComponentInfo、InstrumentationInfo、PermissionGroupInfo、PermissionInfo。 它的间接子类有:ActivityInfo、ProviderInfo、ServiceInfo。这个类包含的信息对于所有包中项目
2014-04-26 14:22:53
2599
转载 TextView文字跑马灯效果(学习别人加自己总结)
在main.xml中实现代码xml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"
2014-04-16 08:33:43
168
转载 ANDROID JNI之JAVA域与c域的互操作
本文讲述AndroidJava域与C域互操作:Java域调用c域的函数;c域访问Java域的属性和方法;c域生成的对象的保存与使用。重点讲解c域如何访问Java域。虽然AndroidJNI实现中,c实现与c++实现是有所区别的,但行文中并未区分c还是c++。0. Android中的JNIAndroid的APP开发一般是用Java,用到的系统服务和操作系统相关的东西
2014-04-09 11:23:34
1030
转载 Android Media Player回调事件传递
--- 比如:节目播放完成事件如何回馈到Java应用空间 通过分析回调事件的传递,有助于进一步理解Android Media Player 框架。 (1) setOnCompletionListener(): 应用程序注册回调对象[MediaPlayer.java]-------------------------------------------------
2014-04-09 11:00:58
6782
转载 自定义view的写法心得
自定义布局控件自然是要继承某个View或ViewGroup由于是根据项目的开发来写的这篇博客,所以我就以自定义布局控件(ViewGroup)来做介绍了。开发一个自定义的ViewGroup自然是要继承ViewGroup类了,在继承这个类之后必须要重写的方法就是onLayout(boolean changed, int l, int t, int r, int b)另外
2014-04-07 13:45:22
1040
转载 scroller view滚动的简单使用方法
Android里Scroller类是为了实现View平滑滚动的一个Helper类。通常在自定义的View时使用,在View中定义一个私有成员mScroller = new Scroller(context)。设置mScroller滚动的位置时,并不会导致View的滚动,通常是用mScroller记录/计算View滚动的位置,再重写View的computeScroll(),完成实际的滚动。相
2014-04-06 15:23:57
2961
转载 自定义控件的 TypedArray和obtainStyledAttributes使用
在编写Android自定义按钮示例基础上,如果要指定字体大小产生这样的效果:其实是不需要自定义变量的,可以直接使用TextView的配置属性: android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:
2014-04-06 13:52:35
819
转载 bitemap 和UI画图工具
android.content.res资源类 android.graphics底层图形类 android.view显示类 android.widget控件类 一、android.content.res.Resources 对于Android平台的资源类android.content.res.Resources可能很多网友比较陌生,一起来看看SDK上是怎么介绍的
2014-04-06 00:18:09
1877
转载 View自绘控件
很多时候想要设计漂亮的Android UI,使用Android自带的控件无法满足我们的需要就要考虑自绘控件,在Android界面显示类View,可以通过继承扩展重写相关方法来实现我们的图形绘制。 首先我们需要了解下View类的底层实现,在SDK中我们可以看到View直接继承于Java的基类Object,实现了图形绘制和按键事件Drawable.CallbackKeyEvent.Callbac
2014-04-06 00:16:51
778
转载 java 基础学习3
package com.android;public class foo extends Object{ public static Map map=new HashMap(); public static List> list=new ArrayList>(); public static Object o; static int a=0; s
2014-04-05 15:29:11
174
转载 简单图片浏览
public class Main extends Activity implements OnClickListener {private ImageView imageView;private Button preButton;private Button nextButton;private TextView title_tv;public ProgressDia
2014-04-04 19:03:20
727
转载 android 获取系统崩溃信息
public class CrashApplication extends Application {@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();Log.v("CrashApplication", "CrashApplication");Cra
2014-03-30 20:06:42
3099
转载 android 关于包的用法
Intent intent=getIntent();ComponentName cn=intent.getComponent();String packname=cn.getPackageName();String clsname=cn.getClassName(); 对于一个activity ,可以从intent获得其组件名,再从组件名获得包名,是主包名吗
2014-03-30 20:04:33
794
转载 openGL 3d初试
import javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.game.GameCanvas;import javax.microedition.m3g.Appearance;import javax.microedition.m3g.Camera;import javax.microedition
2014-03-29 21:39:50
694
转载 service 知识要点讲解
将字符串解析成Long值try {if (!TextUtils.isEmpty(periodStr))period = Long.parseLong(periodStr) * 60 * 1000;} catch (Exception e) {Log.i(TAG, "Long.parseLong(periodStr) :" + e.toString());}@Ov
2014-03-26 13:42:28
831
转载 如何传递复杂数据的AIDL服务
传递复杂数据的AIDL服务AIDL是一种接口定义语言,用于约束两个进程间的通信规则,供编译器生成代码,实现Android 设备上的进程间通信。 进程之间的通信信息首先会被转换成AIDL 协议消息,然后发送给对方,对方受到AIDL协议消息后再转换成相应的对象。 AIDL服务工程目录:src\ch08\ch08_complextypeaidl客户端程序工程目录:
2014-03-23 14:03:22
5326
转载 affinity及任务加载讲解
Activity和任务如前所述,一个activity可以启动另外一个,甚至包括与它不处于同一应用程序之中的。举个例子说,假设你想让用户看到某个地方的街道地图。而已经存在一个具有此功能的activity了,那么你的activity所需要做的工作就是把请求信息放到一个Intent对象里面,并把它传递给startActivity()。于是地图浏览器就会显示那个地图。而当用户按下BACK键的时候,你的
2014-03-23 13:49:33
1139
转载 android字体工作原理
Android字体工作原理本文简单介绍了上层如何使用特定字体,android字体工作原理提出要求浏览器使用单独的字体,并且不影响系统默认字体的使用。图形小组在该需求的基础上,又提出了如果一个ttf文件包含多个字库,skia是否支持,如果不支持,实现难度多大。本文主要在这两个方面展开。2.1 问题分析针对以上需求,主要从以下两个方面展开:1. android是否提供设置特
2014-03-23 12:36:10
10147
转载 java 正则表达式
Java中正则表达式使用方法详解如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(RegularExpression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。 许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处
2014-03-23 12:16:20
605
转载 android中目录和文件讲解
dalvik-cache解释当Android启动时,DalvikVM监视所有的程序(APK文件)和框架,并且为他们创建一个依存关系树。DalvikVM通过这个依存关系树来为每个程序优化代码并存储在Dalvik缓存中。这样,所有程序在运行时都会使用优化过的代码。这就是当你刷一个新的ROM时,有时候第一次启动时间非常非常长的原因。当一个程序(或者框架库)发生变更,Dalvi
2014-03-23 10:53:38
694
转载 android实现两个listview的同步滚动
在开发的过程中看到项目有实现两个listview同步滚动的效果,所以就希望跟大家分享一下!!不用说大家可能也想到在listview的onScrollListener中做一些操作, 现在具体的细节如下: view sourceprint?01public void setListViewOnTouchAndScrollList
2014-03-15 23:55:11
1978
转载 Processes and Threads life cycle生命周期
Processes and ThreadsHowever, you can arrange for components to run in other processes, and you can spawn additional threads for any process.当一个应用程序的第一个component需要运行时,Android为它启动一个包含一个线程的Linu
2014-03-15 23:03:51
841
原创 android 键盘输入事件学习笔记
android 事件传递方法:用户点击按钮button -->将会调用button的dispatchTouchEvent(),这个函数如果被重写了,怎会执行它,如果没有重写,则去父类:如 textview,,如果他也没有实现,则会继续找父类view的执行。android点击事件处理:首先onTouch执行两次:一次在 ACTION_DOWN 和ACTN_UP再后面就是onClick r
2014-03-12 23:25:26
886
原创 OTA升级,第三方如何发到消息到handler
OTA升级之下载部分:1,首先在收到开机广播中,context.startService(service);2,在全局application中:public class Base extends Application { 正在下载判断: public boolean IsDownloadRunning=false; 消息队列 public ArrayList me
2014-03-11 20:01:25
755
转载 动态壁纸和shortcut学习
package org.crazyit.desktop;import android.graphics.Canvas;import android.graphics.Paint;import android.os.Handler;import android.service.wallpaper.WallpaperService;import android.view.Motio
2014-03-11 16:25:46
765
转载 MediaScanner 详解
多媒体扫描是从MediaScannerService开始的。这是一个单独的package。位于packages/providers/MediaProvider:含以下java文件l MediaProvider.javal MediaScannerReceiver.javal MediaScannerService.javal
2014-03-11 12:21:13
1472
转载 ott项目总结遇到的问题
2.1知识点一(1)问题现象升级下载时很耗CPU,导致界面常停止响应。 (2)原因分析下载线程一直占有CPU,没有让出来。(3)解决方案因为库里面本来就是起一个线程下载,所以直接调用即可,不会影响UI线程。后来放到AsyncTask cpu占用50%左右,这个时候去播放视频会比较卡。最后干脆直接让他们在库里改下载1M字节休息一段时间,之后CPU就降到20%。还比较理想,
2014-03-10 11:27:12
2177
转载 android wifi工作流程
Android中上层java模块和下层c协议处理模块之间的交互不外乎这样的一个方式:上层发送命令(一般是一个消息或者)给c模块(一般是一个守护进程,开机就有监听消息的循环)执行,立即起一个定时器等待反馈,如果规定时间内没有反馈,则当失败处理。执行完成OK(有时是打通了一个socket通道,即建立起了链接),发送消息给上层,上层更新状态,执行失败,发消息也给上层以提示。当然,发送命令的这一过程还可以
2014-03-08 22:36:19
1102
Visual.C..开发入行真功夫.ch05.pdf
2010-05-11
Nucleus PLUS源码分析
2010-04-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人