Android开发之路
文章平均质量分 89
jltxgcy
热爱Android,热爱开源。
展开
-
Tasks and Back Stack
一、每启动一个应用程序,里面所有Activity组成的就是任务栈1,先入后出。如果此时按下Home键,再启动另一个应用程序,形成任务栈2。两者不同。二、AAcitvity在xml中设置了lauchMode:singleTop,A->B->A,如果此时再启动A,那么只调用A的onNewIntent而不再开启Activity。 浏览器Acitivity在xml中设置了lauch原创 2013-08-24 19:24:16 · 1382 阅读 · 0 评论 -
Android 自动化测试
一、基本概念 自动化测试就是模拟人工测试,例如点击按钮,下滑,点击Menu,退出,这一系列的动作都由代码实现。这样的优点主要是可以反复执行很多次,来观察程序是否出现异常。二、开源框架 主要是robotium,网站是http://code.google.com/p/robotium/ 中文网站http://www.robotium原创 2014-01-13 15:13:54 · 1905 阅读 · 0 评论 -
Android 自定义ProgressBar
一、activity_main.xml 自定义了控件,外层是RelativeLayout,里面是个View,通过设置View的宽度来实现进度条的前进,主要com.jltxgcy.progressbar.ProgressView要和包名一致<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andr原创 2014-01-13 17:33:28 · 1687 阅读 · 0 评论 -
动态更新,切换so库
一、动态加载.so System.loadLibrary(xxx.so),此时默认加载/data/data/package_name/libs/ 目录下的so文件 如果apk已经发布,但是我们想动态更新so,那么就要把要更新的so下载到/data/data/package_name/app_libs/,使用System.load(path)来替代原来的System.lo原创 2014-01-13 16:27:44 · 4997 阅读 · 0 评论 -
Android 实现清晰录音
一、ExtAudioRecorder 录音类,来源于http://stackoverflow.com/questions/4871149/how-to-record-voice-in-wav-formt-using-androidpackage com.jltxgcy.wavrecord;import java.io.File;import java.io.IOExce原创 2014-01-13 17:47:26 · 3138 阅读 · 2 评论 -
Android 解析JSON
public void parseSearchDirectAllData(ArrayList programmeSites) {if(programmeSites != null) {programmeSites.clear();try {//jsonObject = new JSONObject(jsonString);JSONArray segsArray = ne原创 2014-01-13 15:47:02 · 1688 阅读 · 0 评论 -
Android 签名机制
一、本文首先引用这篇文章http://yangguangfu.iteye.com/blog/723182 在Android 系统中,所有安装 到 系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个 permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个原创 2014-03-31 09:55:55 · 1722 阅读 · 0 评论 -
Android 混淆机制
一、为什么要加入混淆机制? 为了防止apk被反编译后,很容易被其他人看懂。 混淆机制的本质是什么? 把原来有具体含义的类名,变量名,方法名,修改成让人看不懂的名字,例如方法名getUserName编程了方法名a二、如何混淆代码 Android工程目录下有两个文件,project.properties,proguard原创 2014-03-31 16:24:17 · 3024 阅读 · 0 评论 -
使用命令行模拟Eclipse中Android Project的编译流程(从源代码编译出最后的apk)
本文参考及引用http://www.cnblogs.com/wujd/archive/2012/01/10/wujiandong-android-1.html,命令行具体含义也请参考此文。一、Android Projectd Building System 二、需要用的工具 aapt,dx,apkbuilder,javac原创 2014-03-31 14:35:47 · 5115 阅读 · 2 评论 -
Handler总结
全面介绍了Handler,post(Runnable runable).原创 2013-08-24 21:33:46 · 1634 阅读 · 0 评论 -
eclipse快捷键
1、建立和切换不同的工作空间:File->Switch Workspace,建立不同的工作空间方便管理程序。2、拷贝工作空间配置:导出,File->Export:General->Preference;导入,File->Import:General->Preference。这样配置的eclipse可以在另一个工作空间(同一电脑或者不同电脑的)使用。3、显示行号:Windows->Prefe原创 2013-05-07 22:00:48 · 3126 阅读 · 0 评论 -
从头到尾详解Android Studio
1、下载Android Studio 如果你已经安装了eclipse,并且已经安装了Android SDK,那么请只下Android Studio IDE only,下载地址:http://tools.android.com/download/studio/canary/1-3-1。 方便大家下载,附上百度网盘的链接,是windows的版本,点击打开链接。 2、然后执行下载原创 2015-09-10 17:01:44 · 2973 阅读 · 2 评论 -
Ubuntu Android apk 反编译
一、下载apktool,反编译资源文件 1、下载地址http://code.google.com/p/android-apktool/downloads/list,下载apktool1.5.2.tar.bz2,apktool-install-linux-r05-ibot.tar.bz2 2、apktool1.5.2.tar.bz2存放的是apktool.jar源原创 2013-12-05 14:56:59 · 8334 阅读 · 0 评论 -
Android 静态分析 smali
一、smali语言简介 1、宏观的介绍:http://source.android.com/devices/tech/dalvik/instruction-formats.html 2、具体的指令:http://source.android.com/devices/tech/dalvik/dalvik-bytecode.html 3、《Andro原创 2014-04-02 17:37:58 · 3941 阅读 · 0 评论 -
利用TraceView来观察ListView的getView性能
来源http://www.oschina.net/question/157182_45912一、 首先啥都不做:public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub LinearLay原创 2013-09-02 15:54:20 · 1244 阅读 · 0 评论 -
Activity生命周期,状态保存恢复(经典)
介绍了Activity的生命周期,保存和恢复数据。原创 2013-08-24 11:53:49 · 1974 阅读 · 0 评论 -
BroadcastReceiver总结
动态注册,不需要在AndroidManifest.xml中写上receiver。Activity退出后一定要关闭掉动态注册的receiver,否则会报告异常。 静态注册,需要在AndroidManifest.xml中写上receiver。即使Activity退出后,也在接受消息。 发送广播有两类,一个是系统发送的广播,一个是自己定义发送的广播。 在onReceiver,如果超过10s,那么就会产生ANR,最好的方法是开启一个IntentService,完成任务原创 2013-08-25 17:23:39 · 1401 阅读 · 0 评论 -
AIDL初步
一、整体工程图 二、首先创建在两个工程中都创建RemoteWebPage.aidl,然后分别在gen目录下生成了RemoteWebPage.javapackage com.braincol.aidl.service; interface RemoteWebPage { String getCurrentPageUrl(); }三、在RemoteServic原创 2013-08-25 16:17:12 · 1345 阅读 · 0 评论 -
Android中Intent传递对象的两种方法(Serializable,Parcelable)
今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口,为了让大家更容易理解我还是照常写了一个原创 2013-09-02 15:38:44 · 1182 阅读 · 0 评论 -
Android IOC模块,利用了Java反射和Java注解
一、整体工程图二、BaseActivity.javapackage com.jltxgcy.framework;import android.os.Bundle;public abstract class BaseActivity extends FrameActivity{ private String moduleName = ""; private St原创 2013-08-27 14:13:29 · 3028 阅读 · 0 评论 -
AsyncTask总结(经典,附带源码)
BitmapWorkerTask继承了ImageAsyncTask,大家如果仔细观察,那么这里ImageAsyncTask,其实就是Android自带的源码,具体分析请看注释。那为什么不直接继承呢,是因为这样做可以修改sExecutor.execute(mFuture),这里的线程池。如果采用原创 2013-08-26 21:40:35 · 1822 阅读 · 0 评论 -
通过sharedpreference两个程序共享数据
一、整体工程图 二、SharePreferenceWriteActivity.javapackage org.ourunix.android.sharepreferencewrite;import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle原创 2013-08-25 21:15:41 · 1538 阅读 · 0 评论 -
Sqlite ContentProvider Loader 上下文 对话框
一、整体工程图二、activity_main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pare原创 2013-08-25 20:38:13 · 1430 阅读 · 0 评论 -
Intent and Intent Filters
一、打开明确的Activity或者Service Intent(Context packageContext, Class cls) setClass(Context packageContext, Class cls)二、打开隐士的Activity或者Service,Activity或者Service那边会通过Intent Filters来识别原创 2013-08-25 17:43:16 · 1294 阅读 · 0 评论 -
MessagerService总结
MessagerService介绍。原创 2013-08-25 15:29:40 · 1549 阅读 · 0 评论 -
BindService总结
BindService介绍。原创 2013-08-25 12:56:28 · 1598 阅读 · 0 评论 -
IntentService总结
IntentService使用详解。对比前篇StartService,功能一致,代码实现不同。原创 2013-08-25 10:28:49 · 1197 阅读 · 0 评论 -
StartService总结
介绍了StartService相关知识点。原创 2013-08-25 10:14:20 · 1742 阅读 · 0 评论 -
Fragment总结
Fragment动态和静态添加,Fragment和Activity通信。原创 2013-08-24 17:49:41 · 2048 阅读 · 0 评论 -
Android apk反编译 重打包 重签名 对齐
关于反编译,首先,请阅读http://blog.csdn.net/jltxgcy/article/details/17141127 第一种方式:只使用apktool apktool,xxx.apk放在了同一个目录下 反编译:./apktool d -f xxx.apk,生成了xxx文件夹 重新打包:./apktool b -f xxx(文件原创 2014-03-31 20:31:26 · 6587 阅读 · 0 评论