摘要:1 修改project.properties,添加ProGuard配置项proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt2 自定义混淆文件(举例 android.support.v4...
阅读全文
摘要:1 apktool下载安装下载地址https://code.google.com/p/android-apktool/[1].下载apktool.jar — 解压[2].下载Mac上的辅助工具apktool-install-macosx..– 解压[3]. 将apktool.jar放到apktool...
阅读全文
摘要:1 首先根据广播应用内接收和应用外接收,分两个类进行管理[1] LocalBroadcastManager,应用内广播管理类[2] BroadcastManager 广播管理类(部分应用内,应用外)2 广播接收类实现的两种方式[1] 代码生成类,并注册public class MessageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { } }//代码注册广播接收类public void reg...
阅读全文
摘要:1 检查系统是否安装了jdk,并将javac的路径配置到PATH中 cmd窗口,输入 java -version 查看输出项2 创建需要so的接口类package com.ndk.test;public class JniClient { static public native String AddStr(String strA, String strB); static public native int AddInt(int a, int b);}3 用javac 将接口类.java编译成 .class文件 用cmd命令定位到JniClient.class 所在目录,输入“javac..
阅读全文
摘要:在android中 自定义Application 常用的作用是1 保存在程序运行中的全局变量实例:public class GlobalApp extends Application{ private UserData udata ; public UserData getudata(){ return udata; } public void setudata(UserData data){ this.udata = data; } }2 在程序刚开始运行的时候,初始化组件的作用public class ExampleApplication extends Appl...
阅读全文
摘要:1 下载ndk开发包2 在android 项目中配置编译器(以HelloJni项目为例) 2.1 创建builer (a)Project->Properties->Builders->New,新建一个Builder。 (b)在弹出的【Choose configuration type】对话框,选择【Program】,点击【OK】: (c)在弹出的【Edit Configuration】对话框中,配置选项卡【Main】。 在“Name“中输入新builders的名称(我取名为Ndk_Builder)。 (d)配置选项卡 ------Main选项卡----------------
阅读全文
摘要:1 SharedPreferences settings =Activity.getPreferences(Activity.MODE_PRIVATE); 访问数据的范围为 当前的activity2SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context); 访问数据的范围 为 当前app ,类似于全局变量
阅读全文
摘要:可以分为下面的几部分:使用支持库创建一个Fragment创建一个动态UI多个Fragment之间的通信1、使用支持库如果您的应用需要运行在3.0及以上的版本,可以忽略这部分内容。如果您的应用使用在3.0以下、1.6及以上的版本,需要使用支持库来构建。使用支持库的步骤:使用SDK下的SDK Manager工具下载Android Support Package2. 在您的Android工程的顶级目录下创建一个libs目录3. 找到您的SDK下的/extras/android/support/v4/android-support-v4.jar,并且拷贝到您的项目的libs下,选中这个jar包 → 右
阅读全文
摘要:linux ubuntu系统下,adb不是内部命令解决方法:1、sudo gedit ~/.bashrc2、将下面的两句加到上面打开的文件里export ANDROID_HOME=/home/jason/Develop_SDK/android-sdk-linux_86export PATH=$PATH:$ANDROID_HOME/tools最新的SDK要改为:$PATH:$ANDROID_HOMOE/platform-tools注意:“/home/jason/Develop_SDK/android-sdk-linux_86”是sdk的路径.(export ANDROID_HOME=/home/
阅读全文
摘要:1 前言 android设备的存储特点: 分内存和SD卡两种存储设备,且android设备存储空间小,且系统碎片化等情况。 SD卡:老版本的android设备 不存在内置SD 新版本的android设备包含内置sd卡和外置sd卡 同时sd卡存在挂起,不能读写情况2 当前android io存储的两位的位置的说明2.1 存储到SD卡上 Environment.getExternalStorageDirectory() 获取SD卡路径 判断SD卡是否可用 Environment.getExternalStorageState().equals( Environment.MEDIA_MOU...
阅读全文
摘要:简单的总结几个关键步骤:一、工具准备:apktool , dex2jar , jd-gui二、使用dex2jar + jd-gui 得到apk的java源码 1.用解压工具从 apk包中取出 classes.dex 文件 用命令(dex2jar.bat classes.dex)得到一个 jar文件 2.用jd-gui反编译工具将得到.jar文件反编译成.java文件 举例:C:\Users\xx>d:\dex2jar\dex2jar.bat d:\classes.dex三、使用apktool得到apk的xml文件 1.用命令(apktool d xxx.apk xxx_xml)反编译..
阅读全文
摘要:一.基础知识服务一般分为两种:1:本地服务, Local Service 用于应用程序内部。在Service可以调用Context.startService()启动,调用Context.stopService()结束。 在内部可以调用Service.stopSelf() 或 Service.stopSelfResult()来自己停止。无论调用了多少次startService(),都只需调用一次 stopService()来停止。2:远程服务, Remote Service 用于android系统内部的应用程序之间。可以定义接口并把接口暴露出来,以便其他应用进行操作。客户端建立到服务对象的连接,
阅读全文
摘要:和选中变换图片一样,字体颜色变换的过程如下:在res/color 文件夹下创建 颜色文件<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:color="#ff414141" /> <item android
阅读全文
摘要:import java.util.concurrent.Callable; import java.util.concurrent.CompletionService; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorCompletionService; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.
阅读全文
摘要:可 以给每个activity加上android:configChanges="keyboardHidden|orientation"属性,就不会重启 activity.而是去调用onConfigurationChanged(Configuration newConfig). 这样就可以在这个方法里调整显示方式.比如Java代码if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){//横向setContentView(R.layout.file_list_landscape);}else{//竖向setC
阅读全文
摘要:在android 的RelativeLayout布局中 如何让屏幕自适应且不相互重叠一般根据业务的要求界面布局可以分成两个方向 横向: 界面子元素添加的顺序为下面元素先添加 ,上面的元素后添加 下面的元素设置的属性值:相对与parent 底部对齐 设置高度 上面的元素设置的属性:相对于下面的元素上边对齐 纵向: 界面的右边的元素,先添加,左边的元素后添加备注: 这个与UI布局的绘制规则有关
阅读全文
摘要:本文介绍Android平台中一些免费的UI库及组件资源。 短短数年时间 Android 平台就已经形成了一个庞大而活跃的开发者社区。许多社区开发的项目业已进入成熟阶段,甚至可以用于商业的软件生产中,且不用担心质量问题。 本文编译自androiduipatterns,意在分享一些免费、开源的 Android UI 库及组件资源。 1. GreenDroid 该项目可以实现下列的 UI 设计:动作栏(Action Bar)快捷动作(Quick Action)工作区(Workspace)动态列表(Dynamic List) 以及许多更有用的组件。 项目网站/示例 应用程序屏幕截图:...
阅读全文
摘要:传统的TabHost的使用效果大概是这样的(左图):这是大众点评网早期的Android客户端,标签栏使用了系统自带的控件。然而这个效果和我们看到的很多底部标签栏相差甚远(右图,twitter客户端Twidroyd截图)。他们到底是怎么实现的呢?为此,我在网上查了不少资料,大致有以下种方案:Button Bar实现;修改TabWidget。1. Button Bar基本思路:用一个Layout来呈现整个标签栏,在上面添加若干按钮作为标签,整个Layout作为一个部件include到各个界面的布局里去。当用户点击按钮时,切换到相应的界面(多个Activity间的切换)。在Android 3.0以前
阅读全文
摘要:判断当前task中的运行的activity是否为当前应用,是:pass,否:打开应用主界面,同时发起震动提醒 String packageName = this.getPackageName(); List<RunningTaskInfo> appTask = activityManager.getRunningTasks(1); if (appTask != null) if(appTask.size()>0) if(appTask.get(0).topActivity.toString().contains(packageName)) isAppInFront=true;
阅读全文
摘要://感应管理器 private SensorManager mSensorManager; //震动器 private Vibrator vibrator; //活动管理器 ActivityManager activityManager ; //1获得硬件信息 mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE); activityManager = (ActivityM...
阅读全文