需要你已经装了android-sdk-linux_86
1、设置环境变量 vim ~/.bash_profile
加 $ANDROID_SKD_HOME/tools $ANDROID_SKD_HOME/platform-tools 到 PATH
2、设置一个ln ln -s /$ANDROID_SKD_HOME/platform-tools/adb /usr/local/sbin/adb
3、terminal --> adb install xxx.apk
4、如果出现 INSTALL_FAILED_CONTAINER_ERROR 切换到adb shell下 rm /mnt/secure/asec/smdl2tmp1.asec (and please, if it says something like permission denied .. su !!!)
5、ok,重复3就能安装了
注:以下所有言论纯属个人主观分析。
换肤:
1.manifest.xml中设置android:sharedUserId,通过这种方式可以达到不用应用相互访问资源的目的,以实现换肤功能。
优点:可定期提供换肤包供下载,换肤方式灵活。
缺点:如需使用某个皮肤,必须安装该皮肤。
实现实例代码:
package com.test.android.skin.main; import android.app.Activity; import android.content.Context; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; import android.widget.Button; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Context friendContext = null; try { friendContext = this.createPackageContext( "com.test.android.skin.myskin", Context.CONTEXT_IGNORE_SECURITY); } catch (NameNotFoundException e) { e.printStackTrace(); } Button btn = (Button) findViewById(R.id.btn); if (friendContext == null) { // btn.setBackgroundResource(R.drawable.btn_background); } else { int id = friendContext.getResources().getIdentifier("btn_background", "drawable", friendContext.getPackageName()); btn.setBackgroundDrawable(friendContext.getResources().getDrawable(id)); } } }
2.一个应用中放置几个固定的皮肤,皮肤之间的控制由程序来控制实现。
优点:实现简单。
缺点:不够灵活,要增加新的皮肤需要更新应用。
实现实例:这个很简单,我觉得可以通过sharereference统一控制皮肤的前缀或者路径来实现一个通用的换肤目的。
3.zip压缩包式皮肤。应用可设置一个默认路径。如果用户选择某个皮肤,则解压该皮肤.zip到这个文件夹中。
优点:无需安装,即使卸载掉皮肤应用,该皮肤仍然可用,不会影响正常使用。
缺点:可能会因为用户的误操作,使皮肤文件损坏。
实现实例代码:
核心代码:解压文件,读文件
4.更改背景图片达到整体换肤的目的。这种实现方式比较简单。所有的activity都只有一个大背景,上边的所有内容都为透明样式。这样只需要更改一个背景颜色达到换肤的目的了。
为了代码保密或者代码重用等等原因需要把现有的代码打包放入静态库中,这也是静态库的好处,所以今天一天都在研究如何用xcode 4创建静态库,也是为了我们的项目需要。QQ发布的微博SDK会报错,也是因为没有把静态库打包为unniver static libraries的原因,至于是什么是unniver static libraries,大家可以google一下。(http://blog.boreal-kiss.net/2011/03/15/how-to- create-universal-static-libraries-on-xcode-4/)
下面是创建静态库的方法
1.xcode-create project-cocoa touch static libary.这样就顺利的创建了一个静态库模板。里面只有一个文件,没有什么用处。
2.在静态库中创建一个类,命名为MyClass。这样我们就得到了.h 和 .m 文件。
3.写入方法
///////////////////////.h
#import <Foundation/Foundation.h>
@interface MyClass : NSObject {
}
- (int )add:(int )a b:(int )b;
@end
/////////////////////////////////.m
#import "MyClass.h"
@implementation MyClass
- (int )add:(int )a b:(int )b
{
return (a + b);
}
@end
方法很简单,如果你还是看不懂,就不要向下面看了。
4.然后 Edit Scheme pane (Product > Edit Scheme), change its build configuration to Release,这样就产生一个release模式的静态库,注意release和debug模式的静态库是有区别,如果在引用并把这个模式调错,就会报出“ ignoring file /Users/laiqiangzhuo/Desktop/TestLibary/TestLibary/libLibary.a, missing required architecture i386 in file“的错误。
5。然后在主目录下找到/build/Release-iphoneos/libLibary.a文件,并把它拖到要使用它的project中。
6。在project中引用MyClass.h文件。