当前位置:  编程技术>移动开发
本页文章导读:
    ▪将第三方APK资料编译进入img(转)        将第三方APK文件编译进入img(转) 第一种方法: 1. 将ES_FileExplorerco.apk, flashplayer_V10.3.apk 文件拷贝到Z:\mywork\gingerbreadRel\device\telechips\common目录下; 2. 在Z:\mywork\gingerbreadRel\build\target\product\generic.mk文.........
    ▪ 控件的应用        控件的使用 创建UIButton   // Create a button sized to our art UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(0.0f, 0.0f, 300.0f, 233.0f); button.center = CGPointMake(160.0f, 140.0f); // Set up .........
    ▪ 依据Debug和Release状态的变化来屏蔽日志输出       根据Debug和Release状态的变化来屏蔽日志输出 我们平时在开发应用的时候,经常会用到 NSLog 来调试我们的程序,而随着项目越来越大,这些用于调试的日志输出就会变得很难管理。 发布正.........

[1]将第三方APK资料编译进入img(转)
    来源: 互联网  发布时间: 2014-02-18
将第三方APK文件编译进入img(转)

第一种方法:

1. 将ES_FileExplorerco.apk, flashplayer_V10.3.apk 文件拷贝到Z:\mywork\gingerbreadRel\device\telechips\common目录下;

2. 在Z:\mywork\gingerbreadRel\build\target\product\generic.mk文件中添加下面信息:

PRODUCT_COPY_FILES := \
  device/telechips/common/ES_FileExplorerco.apk:system/app/ES_FileExplorerco.apk \
  device/telechips/common/flashplayer_V10.3.apk:system/app/flashplayer_V10.3.apk \
3. 重新编译整个SDK;

完成.

=====================================

当然, 请大家注意了. 当我用Angry_Birds.apk做以上操作, 发现系统起来后,Angry_Birds.apk运行异常. 在Sam哥的指导下, 原来需要将Angry_Birds.apk包中的libangrybirds.so文件单独取出编译进入img. 可以将Angry_Birds.apk重命名为Angry_Birds.zip文件, 用解压工具打开取出Angry Birds1.53.zip\lib\armeabi-v7a\目录下的libangrybirds.so文件(注意:我的开发环境是ARMV7, 所以选择了armeabi-v7a目录下的so文件;否则选armeabi目录下的so文件). 同样将libangrybirds.so文件放到Z:\mywork\gingerbreadRel\device\telechips\common目录下. 在Z:\mywork\gingerbreadRel\build\target\product\generic.mk文件中添加下面信息:

PRODUCT_COPY_FILES := \
  device/telechips/common/ES_FileExplorerco.apk:system/app/ES_FileExplorerco.apk \
  device/telechips/common/Angry_Birds.apk:system/app/Angry_Birds.apk \
  device/telechips/common/libangrybirds.so:system/lib/libangrybirds.so \
这样Angry_Birds.apk运行就正常了.

=====================================

第二种方法:

1. 在Z:\mywork\gingerbreadRel\packages\apps目录下建一个目录ES_FileExplorerco;

2. 然后把ES_FileExplorerco.apk文件拷贝到Z:\mywork\gingerbreadRel\packages\apps\ES_FileExplorerco目录下;

3. 在ES_FileExplorerco目录下, 建一个Android.mk文件, 输入下面内容:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := ES_FileExplorerco.apk
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := EXECUTABLE
LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)
LOCAL_SRC_FILES := $(LOCAL_MODULE)

include $(BUILD_PREBUILT)

4. 其它APK文件依次重复上面相应操作;

5. 重新编译整个SDK;

完成.

转自 :http://blog.csdn.net/hys119/article/details/7016539

转载 : http://26290056.qzone.qq.com/


    
[2] 控件的应用
    来源: 互联网  发布时间: 2014-02-18
控件的使用

创建UIButton

 

// Create a button sized to our art
	UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
	button.frame = CGRectMake(0.0f, 0.0f, 300.0f, 233.0f);
	button.center = CGPointMake(160.0f, 140.0f);
	
	// Set up the button aligment properties
	button.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
	button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
	
	// Set the font and color
	[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
	[button setTitleColor:[UIColor lightGrayColor] forState:UIControlStateHighlighted];
	
	// Hard code carriage returns
	// button.titleLabel.font = [UIFont boldSystemFontOfSize:36.0f];
	// [button setTitle:@"Word1\nWord2\nWord3" forState: UIControlStateNormal];
	
	// Let label handle carriage returns
	button.titleLabel.font = [UIFont boldSystemFontOfSize:36.0f];
	[button setTitle:@"Lorem Ipsum Dolor Sit" forState: UIControlStateNormal];
	
	button.titleLabel.textAlignment = UITextAlignmentCenter;
	button.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
	
	// Add action
	[button addTarget:self action:@selector(toggleButton:) forControlEvents: UIControlEventTouchUpInside];

创建一个动画

 

// Load Butterflies
	NSMutableArray *bflies = [NSMutableArray array];
	UIImage *img;
	for (int i = 1; i <= 17; i++) {
		NSString *bfname = [NSString stringWithFormat:@"bf_%d.png", i];
		if (img = [UIImage imageNamed:bfname]) [bflies addObject:img];
	}
	
	UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 80.0f, 80.0f)];
	[imageView setAnimationImages:bflies];
	[imageView setAnimationDuration:1.2f];
	[imageView startAnimating];
	imageView.center = button.center;

 一个UIButton翻转的例子

 

@implementation TestBedViewController
- (IBAction) flip: (UIButton *) button
{
	// Hide the view that's going away
	[self.view viewWithTag:BUTTON1].alpha = 1.0f;
	[self.view viewWithTag:BUTTON2].alpha = 1.0f;
	[button setAlpha:0.0f];

	// Decide which animation to use
	UIViewAnimationTransition trans;
	trans = (button.tag == BUTTON1) ? UIViewAnimationTransitionFlipFromLeft : UIViewAnimationTransitionFlipFromRight;

	// Animate the flip
	[UIView beginAnimations:nil context:NULL];
	[UIView setAnimationDuration:1.0f];
	[UIView setAnimationTransition:trans forView:[self.view viewWithTag:CLEARVIEW] cache:YES];
	[[self.view viewWithTag:CLEARVIEW] exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
	[UIView commitAnimations];
}

 UISilder的使用

 

// Create slider
UISlider *slider = [[UISlider alloc] initWithFrame:baseFrame];
slider.center = CGPointMake(160.0f, 140.0f);
slider.value = 0.0f;
	
// Create the callbacks for touch, move, and release
[slider addTarget:self action:@selector(startDrag:) forControlEvents:UIControlEventTouchDown];
[slider addTarget:self action:@selector(updateThumb:) forControlEvents:UIControlEventValueChanged];
[slider addTarget:self action:@selector(endDrag:) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside];

// Present the slider
[self.view addSubview:slider];
[self performSelector:@selector(updateThumb:) withObject:slider afterDelay:0.1f];

//创建图片的例子

- (UIImage *) createImageWithLevel: (float) aLevel
{
	UIGraphicsBeginImageContext(CGSizeMake(40.0f, 100.0f));
	CGContextRef context = UIGraphicsGetCurrentContext();

	float INSET_AMT = 1.5f;

	// Create a filled rect for the thumb
	[[UIColor darkGrayColor] setFill];
	CGContextAddRect(context, CGRectMake(INSET_AMT, 40.0f + INSET_AMT, 40.0f - 2.0f * INSET_AMT, 20.0f - 2.0f * INSET_AMT));
	CGContextFillPath(context);
	
	// Outline the thumb
	[[UIColor whiteColor] setStroke];
	CGContextSetLineWidth(context, 2.0f);	
	CGContextAddRect(context, CGRectMake(2.0f * INSET_AMT, 40.0f + 2.0f * INSET_AMT, 40.0f - 4.0f * INSET_AMT, 20.0f - 4.0f * INSET_AMT));
	CGContextStrokePath(context);

	// Create a filled ellipse for the indicator
	[[UIColor colorWithWhite:aLevel alpha:1.0f] setFill];
	CGContextAddEllipseInRect(context, CGRectMake(0.0f, 0.0f, 40.0f, 40.0f));
	CGContextFillPath(context);
	
	// Label with a number
	NSString *numstring = [NSString stringWithFormat:@"%0.1f", aLevel];
	UIColor *textColor = (aLevel > 0.5f) ? [UIColor blackColor] : [UIColor whiteColor];
	centerText(context, @"Georgia", 20.0f, numstring, CGPointMake(20.0f, 20.0f), textColor);
	
	// Outline the indicator circle
	[[UIColor grayColor] setStroke];
	CGContextSetLineWidth(context, 3.0f);	
	CGContextAddEllipseInRect(context, CGRectMake(INSET_AMT, INSET_AMT, 40.0f - 2.0f * INSET_AMT, 40.0f - 2.0f * INSET_AMT));
	CGContextStrokePath(context);
	
	// Build and return the image
	UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
	UIGraphicsEndImageContext();
	return theImage;
}

//设置UISlider点击和正常两种状态
// create a new custom thumb image and use it for the highlighted state
UIImage *customimg = [self createImageWithLevel:aSlider.value];
[aSlider setThumbImage: simpleThumbImage forState: UIControlStateNormal];
[aSlider setThumbImage: customimg forState: UIControlStateHighlighted];
previousValue = aSlider.value;
 

 

 

 

 

 

预留

预留

预留

预留

预留

预留


    
[3] 依据Debug和Release状态的变化来屏蔽日志输出
    来源: 互联网  发布时间: 2014-02-18
根据Debug和Release状态的变化来屏蔽日志输出

我们平时在开发应用的时候,经常会用到 NSLog 来调试我们的程序,而随着项目越来越大,这些用于调试的日志输出就会变得很难管理。 发布正式版的时候一定要屏蔽掉所有后台输出,因为这些输出还是比较消耗系统资源的。  往往到了这个时候,我们不得不去一行一行的找到 NSLog 调用,然后注释掉。 这样做在项目小的时候还比较有效,但随着项目规模的增长,就会变得越来越难控制。  下面就给大家介绍一个简单的方法,让我们在生成 Release 版本时不需要进行任何更改即可屏蔽所有的 Log 输出。

    首先我们先要定义这样一段预处理命令,文件名随便起,例如 CLog.h

    #ifdef DEBUG
    #define CLog(format, ...) NSLog(format, ## __VA_ARGS__)
    #else
    #define CLog(format, ...)
    #endif

    这里我们判断 DEBUG 这个宏是否定义,如果有定义我们就将这个 CLog 宏替换成 NSLog 调用,而如果没有定义过 DEBUG 标志我们就直接跳过。这点应该不难理解。

    检查 DEBUG 标志是否正确定义,Xcode 一般会在 debug 运行配置项里面已经定义号了DEBUG 标志,如果没定义我们就自己写上,以我的 Xcode 4 为例,如下图:

    找到 PreProcessor Macros 这个属性,对于 Debug 配置我们给他写上 DEBUG,而在 Release 配置中把它留空。 这样我们刚才那段预处理命令就可以根据这个标志来判断我们编译的时调试版本还是发布版本,从而控制 NSLog 的输出。 (因为 Xcode 4 会把 debug/release 两个配置项同时对比展现出来,而 3.x 版本的只能分别设置,如果你用的时xcode 3.x 开发工具, 那么就分别对 Debug/Release 都检查一下)。

    到了这里我们这个判断工作就都进行完了,不过这里还有一点比较麻烦,就是我们如果想实用 CLog 宏,就必须要导入 CLog.h 这个头文件。 不过 Xcode 为我们提供了一种非常巧妙的解决办法。 我们自己看一下项目里的文件,是不是有一个叫做 xxx-prefix.pch 的文件,只要注意到 pch 这个扩展名就可以了。 这个文件是做什么用的呢? 下面是一个 pch 文件的样本:

    //
    // Prefix header for all source files
    //
    #import <Availability.h>
    #ifndef __IPHONE_3_0
    #warning "This project uses features only available in iPhone SDK 3.0 and later."
    #endif
    #ifdef __OBJC__
        #import <UIKit/UIKit.h>
        #import <Foundation/Foundation.h>
    #endif

    这里引入了一些头文件, 其实是 Xcode 的一种预编译机制,我们在编译一个项目的时候,会有很多常用的源文件,并且这些代码文件几乎不被修改,所以 Xcode 对这些文件只在早期进行一次编译,以便我们以后的多次构建过程中反复实用。 例如这里的 UIKit 和 Foundation ,这样的机制可以加快我们每次构建项目的速度。 当然这里我们不必太深究它,知道它的作用后,我们就可以利用它来为我们的开发提供便利。 我们只需要将刚刚建立的 CLog.h 也在这里面引入一下,这样我们项目中的所有文件就都能够访问到我们刚刚定义的 CLog 宏了。 下面是完成后的 pch 文件:

    #import <Availability.h>
    #ifndef __IPHONE_3_0
    #warning "This project uses features only available in iPhone SDK 3.0 and later."
    #endif
    #ifdef __OBJC__
        #import <UIKit/UIKit.h>
        #import <Foundation/Foundation.h>
        #import "CLog.h"
    #endif

    这样,我们的 CLog 就完成了,现在可以在任何一个源文件中实用 CLog 宏来输出日志,预处理命令会自动判断当前的编译配置,如果是 Debug,就会输出日志,反之则什么都不会输出。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
编程技术其它 iis7站长之家
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3