自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (5)
  • 收藏
  • 关注

原创 Android 中 app调用微信开发平台api校验的推理

(1)一般是app在微信服务器上面注册,用自己的包名+签名信息SignInfo(MD5或者SH1)注册然后微信服务器会生成一个key。(2)app在调用微信开发平台接口时候,将自己的包名+key传递给微信,微信通过Android的 Fwk接口获取到app在本地的签名信息SignInfo。(3)微信通过key和包名去微信服务器那边查询app注册的签名信息SignInfo,如果跟上一步骤本地获...

2018-08-01 16:49:31 522

转载 Android 混淆那些事儿

本文转载自: 腾讯Bugly本文主要讲述了代码混淆和资源混淆的原理,Studio默认的混淆方案,混淆的参数,以及如何对Apk进行代码混淆(自定义混淆文件)和资源混淆(结合微信混淆和美团混淆两种方案),避免Apk被逆向。为什么要混淆我们的apk在打包发布之前,都要进行混淆处理来避免源代码和资源文件被小白用户通过反编译拿到。未混淆代码的反编译操作非常简单,网上有很多教程, 也可以通过使用Android...

2018-06-01 17:02:33 515

原创 android中跨进程之间的异步回调

在android中,我们会经常跨进程通信,若要返回结果,则使用aidl中的bindServcie(),但是在结果返回过程中,是异步的过程,即需要一个回调的Listener,将结果回调到发起者。假如A进程和B进程通信,A执行bindServcie()操作来绑定B,绑定之后,获取B本地代理Bproxy,A调用Bproxy来寻求B中的操作,并且要求B将结果返回过来,这时候,就需要A这边注册一次Lis

2015-02-03 22:36:03 4330

原创 android 中Service中的绑定失败策略以及Service自己Destory策略

(一)Service绑定失败策略          在Android中,当我们跨进程启动或者绑定一个Service,当时不能保证第一次就能成功,比如,远程的Service还没起启动成功,当没有绑定成功后,我们通过aidl来调用RemoteServcie就会出现Null错误,就ServiceConnection中的onServiceConnected()还未被回调,没有给本地远程服务代理赋值。

2015-02-01 22:39:01 4843

原创 Android提供的异步类和接口

在Android开发中,我们会经常遇到长时间操作,这些操作又要与UI进行交互,但是这些长时间操作又不能运行在UI线程中,否则会引起ANR问题。我们可以通过Handler机制,自己写后台线程与UI线程进行交互。但是Android系统中也提供了一些已经写好的类和接口,供我们直接使用。其实这些写好的异步类的机制都是相同的,都是使用Handler机制,绑定一个内部线程,然后通过Message和

2015-01-28 23:37:44 1877

原创 `Android跨进程机制的选择

在android中,由多种跨进程实现机制,比如Activity通过startActivity(Intent)来启动一个新的Activity,两个Acivity运行在不同的进程中,第二种就是通过AIDL来实现跨进程的访问,该种方式是通过驱动底层的binder驱动来实现进程间的通信,速度快,比较稳定;第三种就是通过Broadcast广播机制,一个应用程序发送广播,接受者通过注册来接受该广播,该种情况是

2015-01-26 22:50:16 627

原创 git 提交代码的错误处理

现在项目代码管理基本在git或者svn上面,各有优缺点,但是在linux环境中开发又以git 为主。现在网络git教材很多,作为一名开发者,不用精通git全部原理和命令,基本掌握就可以了。基本的提交命令,git add , git commit , git push 大家都会,但是当我们在git push以后,在Review后,遇到门禁或不能merger到代码库中,这种情景最让人头

2015-01-22 23:11:11 11673

原创 android AOSP 源码下载指南

首先下载两个工具:repo和git安装JDK$sudo apt-get install sun-java6-jdk安装依赖包由于不同的Ubuntu版本,内嵌的包不同,因此,不同的版本所需要的依赖包也不同,一下是Ubuntu12.4里面所需的包:$sudo apt-get install git gnupg flex bison gperf build-essen

2015-01-04 22:28:49 633

原创 Android中JNI创建实例

参考文档:http://blog.sina.com.cn/s/blog_a11f64590101924l.htmlhttp://www.cnblogs.com/hoys/archive/2010/10/28/1863612.htmlhttp://www.cnblogs.com/bastard/archive/2012/05/19/2508913.htmlhttp://blog.cs

2015-01-04 22:18:46 9661 2

原创 Linux安装java步骤

我们在Java开发或者Android开发,或者使用一些工具,这些工具依赖于Java,都需要安装Java,根据操作系统的不同,主要是Window和Linux,安装Java步骤也不同,Windows下面安装网络教程很多,这里就不需要介绍了,主要介绍Linux环境下的安装。(1)jdk下载登录Sun的JDK官方下载网址:http://java.sun.com/javase/dow

2015-01-03 21:19:16 730

原创 僵尸进程的分析

僵尸进程产生如何避免僵尸进程

2014-08-03 16:46:19 1796

转载 android绘制过程

原文链接: 点击打开链接首先,在activity 类中(activity.java),我们可以看到两个变量,分别是:        private Window mWindow;        private WindowManager mWindowManager;这两个变量在attach函数中进行赋值,        mWindow = PolicyMana

2013-08-20 23:50:12 645

转载 Android内存泄漏就这样产生了

原文链接:点击打开链接1.资源对象没关闭造成的内存泄漏描述:资源性对象比如(Cursor,File文件等)往往都用了一些缓冲,我们在不使用的时候,应该及时关闭它们,以便它们的缓冲及时回收内存。它们的缓冲不仅存在于java虚拟机内,还存在于java虚拟机外。如果我们仅仅是把它的引用设置为null,而不关闭它们,往往会造成内存泄漏。因为有些资源性对象,比如SQLiteCursor(

2013-07-24 23:19:59 515

转载 手把手教你把Vim改装成一个IDE编程环境(图文)

原文链接:手把手教你把Vim改装成一个IDE编程环境(图文)

2013-07-18 23:42:25 499

转载 Android ANR

原文链接:点击打开链接Android ANR1)什么引发了ANR?在Android里,应用程序的响应性是由Activity Manager和WindowManager系统服务监视的。当它监测到以下情况中的一个时,Android就会针对特定的应用程序显示ANR:在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸)BroadcastReceiver在10秒内没有执行完毕

2013-07-18 23:36:01 1396

原创 Android编译相关知识

本文将撰写一些与编译Android代码相关知识,后续会开辟单独分析一下Android整个编译系统。Android局部编译framework: 在根目录下面执行:make framework 局部编译services在根目录下面执行:make services待遇..........

2013-07-15 23:29:38 697

转载 finally小特性

原文链接:点击打开链接        try/catch/finally语句下,finally子句是肯定会执行的。但是很多人做不同的测试,却得出了不同的结论。具体的原理最好是去看《深入java虚拟机》,里面对jsr、ret等几个指令做了详细的说明。这里不深入分析,而仅仅是从表现形式上看一下finally的特征。代码:/* * author: Zang XT */publ

2013-07-15 23:26:09 682

转载 关于java中的try-catch-finally语句和return

原文链接:关于java中的try-catch-finally语句和return

2013-07-15 23:18:52 668

原创 java 内return语句总结

return 在Java中作用        根据《java编程思想:第四版》4.5节中介绍:return语句作为一个无条件的分支,无需判断条件即可发生。return语句主要有两个用途:一方面用来表示一个方法返回的值(假定没有void返回值),另一方面是指它导致该方法退出,并返回那个值。根据方法的定义,每一个方法都有返回类型,该类型可以是基本类型,也可以是对象类型,同时每个方法都必须有个结束标

2013-07-15 22:54:17 11701 2

翻译 (Android)API Guides/Accessing Resources

原文链接:点击打一旦你创建好了资源文件,即可通过资源ID来引用它们,所有这些IDs都在工程的R类,由aapt工具自动生成。当你的应用编译时,aapt自动生成R类。它包含所有在res/目录里面的资源文件。每一种资源类型,都有一个R子类。每个该类型的资源都有一个静态整型。这个整型就是资源的ID。尽管R类保存了所有资源文件的IDs,你也无须到里面查找。一个资源ID通常由以下组成:  A.

2013-07-08 21:03:30 1086

翻译 API Guides/App Resources/Resource Type/Layout

布局资源文件原文链接:点击打开链接一个布局资源文件是定义了一个Activity的UI 或者一个组件的框架。文件地址:        res/layout/filename.xml        filename 被用作资源这个资源的ID。编译出的资源类型:       资源被指向一个 View(或子类)。资源引用:      Ja

2013-06-19 22:59:19 588

翻译 Android API Guides/Drawable Animation 翻译

原文链接:Drawable Animation可绘制动画        可绘制动画通过加载一系列可绘制资源实现。是一种传统的动画。在某种意义上说,是将一系列不同的图片资源按照顺序播放,就像胶卷。AnimationDrawable类是可绘制动画的基本类。        可以在代码里面使用 AnimationDrawableAPI接口创建动画帧,但是使用一个简单的XML文件会更简单

2013-06-12 13:31:04 1156

翻译 API Guides/Permisson 翻译

原文链接:Permissions权限本文主要描述应用如何使用Android系统提供的安全机制。更多信息请参照 Android Security Overview 。Android是一个特权分割的操作系统, 每一个运行的应用都有鲜明的系统标志(Linux用户ID 和 组ID)。Android系统的某些部分被分成不同的身份,因此,Linux也将Android系统

2013-05-28 17:57:12 741

原创 Android内获取图片资源的方式

应用在获取图片时可以从两个地方获取:本地图片资源以及网络图片资源。先面分别介绍一下这两种获取的方式。网络获取图片资源主要是通过图片资源的URL进行网络链接,然后读取数据流,获取Bitmap对象代码如下:public class AsyncTaskTest extends Activity { private static String photohttp = "

2013-05-27 16:16:28 1826

翻译 API Guides/App Components/Process and Thread翻译

原文链接: Processes and Threads进程和线程当一个应用程序没有任何组件运行时,启动该应用的一个组件,Android 系统就会为该应用启动一个新的Linux进程,执行一个线程应用。默认,同一个应用的所有组建都运行在同一个进程和线程(该线程被称为“主线程”)里面。假如启动一个组件,该应用已经存在一个进程(可能是该应用的其他组件所启动的进程),那么该组件就会在该进程里面运

2013-05-27 13:01:52 1346

原创 Java 中关于String的空对象(null) ,空值(empty),空格 的总结

Java 中关于String 对象的空对象(null), 空值(""),空格(" ")对于很多人来说很模糊,下面将分别介绍一下他们的用法:定义,判断,运算。首先,先上代码:private void testStringNullOrEmpty() { // 如果s=null代表空对象,即还没创建出对象,就是还没开辟空间,。 // 如果s = ""表示创建出了对象,但是这个对象内容为

2013-05-24 13:26:14 29856 1

翻译 API/Guides/User Interface/Styles and Themes 翻译

原文链接:Styles and Themes样式是指一系列关于设图和窗口的格式或者界面的属性组合。一种样式能够确定设图的高度,填充,字体颜色,字体大小,背景颜色等等。一种样式被定义在一个XML资源文件里面,该文件和指定布局的XML文件不同。Android中的样式和web设计中的层叠样式理念一样-----他们允许你将设计和内容分开。比如,通过使用一种样式,你可以在

2013-05-23 17:56:40 872

翻译 GitHubHelp翻译

原文链接:GitHubHelp安装Git(Linux环境)如果你在查看该页,我们假定你对Git 以及GitHub都是陌生的。本指南将会给你讲解一些基本知识,以及使用流程的基本操作。下载安装GitGitHub的核心是一个开源的代码版本管理系统,Git*。它和Linux都是同一个团队创建。Git 负责GitHub上面一切与本地机器相关联的事情。加入你不知道Git是什么?

2013-05-23 13:22:42 1946

原创 Java类型转换在函数参数中的小结

在看Java 中String.java中源码时候,查看字符串包含子字符串的方法实现机制,在类型转换方面遇到一个小问题,代码如下: public boolean contains(CharSequence cs) { if (cs == null) { throw new NullPointerException(); }

2013-05-21 21:16:37 2573

翻译 API Guides/Input Controls

原文链接:Input Controls输入控制输入控制就是你的应用程序中人机交互的组件。Android提供了大量的控件,比如按钮,文本框,搜索框,复选框,变焦按钮,切换按钮等等。增加一个输入控制到你UI厘米那,就像增加一个XML元素到你的XML布局那样简单。下面就是一个带有文本框和按钮的布局例子:

2013-05-20 22:34:06 646

转载 GridLayout网格布局

在看GridLayout时,看到这篇文章,发现不错,推荐下:点击打开链接

2013-05-20 17:02:46 617

翻译 优化 布局层次结构

原文链接:Optimizing Layout Hierarchies优化布局层次结构这是一个普遍的误解,使用基本的布局架构会产生高效的布局性能。然而,每一个你添加到应用的控件和布局都需要初始化,放置和绘制。比如,使用一个内嵌的LinearLayout会导致过深的布局层次结构。另外,使用layout_weight属性的内嵌多个LinearLayout实例会花费更大的代价,因此

2013-05-20 15:36:49 1745

翻译 使用<include/> 对布局的重用

声明:有些地方翻译时候按照中文的逻辑进行了相应的调整。第一次翻译,难免有些错误,感谢指正。原文链接: Re-using Layouts with 使用重用布局尽管Android提供了各式各样的控件以供人员在布局内重复使用,你也可能需要重用一些复杂的布局,那些布局都是一些自定义的布局。通过使用标志可将一个布局内嵌到另一个布局里面,从而提高重用布局效率。当你需要创建一个可重用的复杂

2013-05-17 21:02:28 1301

转载 Activity的四种launchMode

最近做项目时候,遇到一个关于activity在栈里面实例问题:A->B->HOME Buttom,C->B ,在第二个步骤中,C的Intent 携带的数值,在B接受中Intent数值不同,属于第一个步骤中的Intent所携带的值。通过分析发现,是由于launchMode所引起的问题。找到这篇文章,感觉不错,分享下:点击打开链接

2013-05-13 15:57:19 400

转载 ORACLE ORDER BY用法总结

今天在逛论坛的时候看到shiyiwan同学写了一个很简单的语句,可是order by后面的形式却比较新颖(对于我来说哦),以前从来没看过这种用法,就想记下来,正好总结一下ORDER BY的知识。 1、ORDER BY 中关于NULL的处理缺省处理,Oracle在Order by 时认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前。当然,你

2013-05-07 10:09:50 940

原创 Android获取Theme的背景颜色

每个应用在Andmanifest.xml中都会设置Theme,Theme中定义了很过apk里面的一些主题属性(即整个环境的属性,如apk运行的背景颜色,里面Dialog的样式等等)。在应用中有时会改变某个控件或者View的背景颜色,再通过某个触发事件,返回到Theme的背景颜色,需要获取Theme背景颜色属性。可通过如下方法获取:TypedArray array = getThem

2013-04-10 15:55:06 10694

原创 程序对数据的不同处理。

在编写程序时候,都是对数据的处理,根据数据数量的多少可以判断一个程序的设计原理。1. 单个数据:该种情况在程序的逻辑处理中使用较多,往往使用一个变量来保存一个逻辑功能的执行状态,比如说,定义一个int status,赋值为0表示未启动,1表示processing, 2表示finish.2. 有限数据个数:若处理的对象较多,同时个数又不是太大时候,使用该种情况。往往使用容器(比如se

2013-04-08 09:54:05 880

vim plugin vim changes to ide update

add wintagexplorer.vim , echofunc.vim , vimrc

2014-03-28

vim_plugin(vim changes to ide)

将vim修改为ide常用插件:a.vim , grep.vim, visual mark.vim, supertab.vim, taglist.vim, winmanager.vim, minibufexpl.vim

2013-07-18

Android.in.Action.2

android in action2 全英文版,非常有价值一本书。

2011-08-30

空空如也

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

TA关注的人

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