自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

PH哈哈的博客

每天只学一小点

  • 博客(46)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android 内存泄漏

造成内存泄漏的原因资源未关闭造成的内存泄漏 BraodcastReceiver,ContentObserver,File,Cursor,Stream等等资源bitmap没有被回收对象的引用没有被释放 单例的不规范使用 “` public static xxx getInstance(Context context){ if(this.instance == null){ ins

2016-10-19 21:07:11 249

转载 2378956.html

XMPP协议实现原理介绍 转自:http://www.cnblogs.com/hanyonglu/archive/2012/03/04/2378956.html 本文介绍XMPP协议原理及相关信息。  XMPP协议简介   XMPP(Extensible Messageing and Pre

2016-10-11 15:31:39 279

转载 Android studio 2.2 NDK 开发

转自http://www.jianshu.com/p/18724f29d30e

2016-10-05 23:53:38 253

转载 锁屏上显示Activity

在Android中,有些比较强的提醒,需要用户紧急处理的内容。需要唤醒屏幕,甚至在锁定屏幕的情况下,也要显示出来。例如,来电界面和闹钟提醒界面。这是怎样实现的呢?其实,实现起来非常简单。只要给Activity的Window添加如下属性即可:@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCrea

2016-09-12 14:38:55 416

原创 提问题的艺术

提问题的艺术

2016-09-02 17:15:40 261

原创 View 滑动的实现方式

瞬时移动实现 1. scroller 2. 使用动画 3. 改变布局参数 ViewGroup.MarginLayoutParams param = (ViewGroup.MarginLayoutParams) btn2.getLayoutParams(); param.leftMargin = 100; btn2.setLayoutParams(para

2016-08-30 10:55:07 269

原创 Android NDK编程

NDK编程的步骤 (前提:eclipse拥有ndk编程环境. 此工程演示文件拆分、合并的功能)-新建Android工程(废话)创建类编写java层native方法/** * 拆分 * @param path 文件原始路径 * @param path_pattern 拆分的路径 * @param count 拆分的个数 */ pub

2016-08-24 16:48:28 233

原创 JNI 编程基础

简介JNI(Java Native Interface) Java调用C/C++,C/C++调用Java的一套API 2. JNI编程的步骤 编写native方法 javah命令,生成.h头文件(cmd命令进入java工程的src文件夹) 复制.h头文件到CPP工程中 复制jni.h和jni_md.h文件到CPP工程中

2016-08-20 19:36:47 312

原创 C define

c语言中的define 为宏定义(宏替换、预编译指令)在c语言中的应用 定义标示 :#ifdef __cplusplus 标识支持C++语法 防止文件重复引入//A.h#ifndef BH#define BH#include "B.h"//#endif//OKvoid printA();#endif//B.h#ifndef AH#def

2016-08-20 19:26:16 430

原创 C语言外挂小程序

主程序代码int time = 100;printf("time的地址:%#x\n",&time);while(time > 0){ time--; printf("游戏剩余时间为:%d\n",time);}外挂程序代码__declspec(dllexport) void go(){ // 前边的标示代表生成动态库int *p = 0x22222//time的地址*p = 9999

2016-08-20 19:08:58 3161

原创 C语言基础

基本数据类型 int %d; short %d; long %l; float %f; double %lf; char %c; //声明时用”单引号;声明数组时使用“”计算所占字节数 sizeof (数据类型)指针 定义:存储的变量的内存地址 int a = 10;int *p = &a;//p为a在内存空间的地址通过指针可以修改a的值*

2016-08-02 17:25:53 273

原创 Android 数据库

## SQLiteOpenHelper认识 ## 作用: 方法: // getWritableDatabase() 或者 getReadableDatabase() 被调用时才真正的被创建 SQLiteOpenHelper (Context context, String name, SQLiteDatabase.CursorFactory factory, int version)//作用

2016-08-02 13:58:53 188

原创 ScrollerView中嵌套多个ListView,ListView都展示出

方法一:通过重写listView(此方法可用于使ListView高度自适应,GridView同样适用)public class SearchListView extends ListView { public SearchListView(Context context) { // TODO Auto-generated constructor stub sup

2016-07-26 10:51:20 579

原创 ListView view复用后混乱问题

在getView()中根据情况为holder.view设置内容为view设置tag

2016-07-20 15:07:56 390

原创 隐藏标题栏的方式

在onCreat()中设置 requestWindowFeature(Window.FEATURE_NO_TITLE); 此方法需要在setContentView(xxx)之上getActionBar().hide(); //此方法的设置没有限制在mainfest中设置: android:theme=”@android:style/Theme.Light.NoTitleBar”

2016-07-13 10:28:16 353

原创 base64编码

原理及作用 http://www.cnblogs.com/chengxiaohui/articles/3951129.html将文件转换为base64编码字符串public static String encodeImgToBase64(String path){ String result = null; try { FileInpu

2016-07-06 19:28:15 583

转载 voip相关书籍

001、《FreeSWITCH VOIP 实战》简介:国内第一本以通俗易懂的语言描述了电信行业的整体情况以及运用FreeSWITCH解决实际问题的专业书籍。002、《FreeSWITCH 1.0.6》简介:FREESWITCH官方出版的第一本使用手册,介绍了FREESWITCH中的大部分功能。003、《FreeSWITCH Cookbook》简介:FREESWITCH官方出版的第二本手册,以每节实现

2016-06-22 17:08:50 1912

转载 Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系

转自:http://blog.csdn.net/lmj623565791/article/details/38377229/ 1、概述话说最近股市变动不变,也成了热火朝天的话题。不知道大家有没有考虑做个实时更新股市数据的app呢?假设我们要做一个股市数据实时更新的app,我们可以在网上找个第三方的股市数据接口,然后在我们的app中每隔1分钟(合适的时间)去更新数据,然后更新我们的UI即可。当然了,

2016-06-19 16:38:22 755

原创 string 字符匹配

在xml里声明:<string name="mosaic">I %1$d love %2$s</string>java中进行匹配:mTextView.setText(String.format(getString(R.string.mosaic), 1314,"you"));直接在java代码中进行设置String.format("%s %d %s", "I",1314,"love you

2016-06-02 14:15:47 478

转载 apk签名

意义:为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。使用eclipse导出带有签名的apk导出apk 创建密钥库keystore,输入密钥库导出位置和密码,记住密码,下次Use existing keystor

2016-05-24 11:21:21 284

原创 Android 输入法

AndroidMainfest中对Activity进行的相关设置android:windowSoftInputMode="stateUnchanged|adjustPan"stateUnchanged:软键盘的控制状态 stateUnspecified:(默认采取的状态)未指定的状态,系统将选择适当的中泰或依赖theme中的设置 stateUnchanged:保持原先的状态,无

2016-05-19 16:43:54 401

原创 横竖屏切换

当activity在AndroidMainfest中不设置configChanges属性时,横屏切换竖屏、竖屏切换横屏时,Activity中回调的方法如下: 在这种情况下屏幕的切换不会自动保存原有的状态,但是可以通过在 onSaveInstanceState中保存,在onRestoreInstanceState方法中获取之前保存的信息的方法回复屏幕中原状态,如保存edittext中的信息:

2016-05-11 09:56:11 2382

原创 获取图片的缩略图

获取SD卡所有的jpeg,png格式的图片public static ArrayList<String> getAllPhotoUrlsFromCR(Context context) { ArrayList<String> allPhotoUrls = new ArrayList<String>(); Uri mImageUri = MediaStore.Image

2016-04-28 17:51:57 1075

原创 获取视频缩略图

获取SD卡所有的视频文件路径 “` public static ArrayList getAllVideoUrls(Context context){ ArrayList allVideoUrls = new ArrayList(); Uri mImageUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI; Conte

2016-04-28 17:47:00 1242

转载 Volley详解

转自:http://www.cnblogs.com/caobotao/p/5071658.html. Volley简介 volley的英文意思为‘群发’、‘迸发’。Volley是2013年谷歌官方发布的一款Android平台上的网络通信库。Volley非常适合一些数据量不大,但需要频繁通信的网络操作。使用Volley进行网络开发可以使我们的开发效率得到很大的提升,而且性能的稳定性也比较高。但是V

2016-04-04 11:03:46 331

原创 ViewPager使用

很好的两篇文章: http://blog.csdn.net/alangdangjia/article/details/9054921 http://www.cnblogs.com/lianghui66/p/3607091.html 1. ViewPager和Fragment的使用ViewPager mViewPager = new ViewPager();Fragment[] mTab

2016-04-03 10:34:11 200

转载 [Android] ListView中getView的原理+如何在ListView中放置多个item

转载:http://www.cnblogs.com/xiaowenji/archive/2010/12/08/1900579.html ListView 和 Adapter 的基础工作原理:ListView 针对List中每个item,要求 adapter “给我一个视图” (getView)。 一个新的视图被返回并显示 如果我们有上亿个项目要显示怎么办?为每个项目创建一个新视图?NO!这不可

2016-03-17 15:09:45 253

转载 进程通信

转自:http://blog.csdn.net/toyuexinshangwan/article/details/8640709 由于android系统中应用程序之间不能共享内存。因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些。在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Prov

2016-03-03 16:31:08 227

转载 Activity四种启动模式

转载:http://blog.csdn.net/liuhe688/article/details/6754323 今天在社区看到有朋友问“如何在半年内成为顶级架构师”,有网友道“关灯睡觉,不用半年的…”,的确,做梦还来的快一些。作为一个程序员,树立远大的目标是值得欣赏的,但不能只去空想,要一步一步地实践才行。成大事者,须从小事做起;万事起于忽微,量变引起质变。 我们今天要讲的是Activity的

2016-02-19 13:05:20 287

转载 android view显示在最顶层

view.bringToFront() 可以讲布局在下层的控件放到上层,不被其他控件挡住。

2016-01-29 15:15:16 13486

原创 volatile关键字

Volatile关键字简介 Java 语言提供了一种稍弱的同步机制,即 volatile 变量.用来确保将变量的更新操作通知到其他线程,保证了新值能立即同步到主内存,以及每次使用前立即从主内存刷新. 当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的.volatite 为什么是线程不安全的(如 基本类型变量的非原子操作) http://www.cnblogs.com/

2016-01-23 21:28:48 243

原创 java多线程可见性

名词解释 可见性:一个线程对共享变量的修改,能即使的被其他线程看到 共享变量:一个变量在多个线程的工作内存中都存在副本,那么这个变量就是几个线程的共享变量 java内存模型(JMM):描述了java程序中各种变量(线程共享变量)的访问机制,以及在JVM中将变量存储到内存和读取变量这样的底层细节所以的变量都存储在主内存中 每个线程都有自己独立的工作内存,里面保存该线程使用的变量的副本规定:

2015-12-05 18:10:03 855

原创 单例模式

定义:确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例实现单例的关键点: 构造函数不对外开放,一般为private 通过静态方法或者枚举返回单例类对象 确保单例类的对象有且只有一个,尤其在多线程环境下 确保单例在反序列化时不会重新构建函数实现方式 饿汉模式private static SignalTask mSignalTask = new SignalTask();

2015-11-30 09:02:59 228

原创 判断网络状态

判断网络是否可用public static boolean isNetworkAvailable(Context context) { try { ConnectivityManager cn = (ConnectivityManager) context .getSystemService(Context.CONNE

2015-11-18 19:21:39 276

原创 判断应用是否存在

根据包名private Boolean isAppInstall(String packageName){ PackageManager pm = mContext.getPackageManager(); List<PackageInfo> pinfo = pm.getInstalledPackages(0); if (pinfo != null

2015-11-14 15:42:20 531

原创 Activity新认识

一个activity生命周期 显示状态:oncreat;onstart;onresume 不可见状态:onPause;onStop 销毁状态:onDestory多个activity交互的生命周期 从A跳到B A B onCreat onStart onResume onPause

2015-11-03 09:05:27 445

原创 AdapterView和Adapter

AdapterView:容器组件,其子元素内容的有adapter所决定 ListView:以垂直滑动列表形式显示一组数据。 GridView:以网格形式显示一组数据。 Spinner:以下拉列表形式显示一组数据。 Gallery:以水平滑动列表形式显示一组数据。Adapter数据和视图之间交互的中介 ArrayAdapter:最简单的适配器,数据源为文本字符串数组。 ArrayA

2015-11-02 19:09:14 337

原创 屏幕适配

屏幕适配 的基本概念 屏幕尺寸:屏幕的对角线长度:1英寸 = 2.54厘米 屏幕分辨率:在横纵向上的屏幕点数,单位px 纵向*横向 = 1920*1080 屏幕像素密度:每英寸上的像素点数 ,单位dpi,(√横向^2+纵向^2)/屏幕英寸数 px:像素,构成图像的最小单位 dp\dip:密度无关像素;160dpi为基准,1dip=1px

2015-11-01 14:34:22 311

原创 ContentProvider

数据共享 ContentProvider,这是一种不同应用之间共享数据的标准API: 当应用希望提供数据时,就提供Contentprovider 其他应用通过ContentResolver来操作 注意: ContentProvider需要在AndroidManifest.xml中注册 一旦应用提供CP,不论应用启动与否,都可被操作 ContentProvider是单例模式的,多个Con

2015-10-27 19:42:53 246

转载 获取textview每行的内容

tv=(TextView)findViewById(R.id.tv);Layout layout=tv.getLayout();//layout.draw(canvas);int line=tv.getLayout().getLineCount();String result="";String text=layout.getText().toString();for(int i=0;i

2015-10-21 20:05:02 3134 3

eclipse code formatter

eclipse code formatter 插件格式化代码更简单,更灵活

2018-09-28

Android中的NDK开发

文件拆分、合并的Android NDK开发

2016-08-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除