当前位置:  编程技术>移动开发
本页文章导读:
    ▪施用属性和直接使用变量        使用属性和直接使用变量   假设[NSArray arrayWithObjects:[NSMutableString stringWithString:@"MutableString"],@"string", nil]为对象A    MyViewController *myVC=[[MyViewController alloc]init];     //@autoreleasepool     //{  .........
    ▪ 晋级ADT到21.1后,编译工程不能生成R.java文件        升级ADT到21.1后,编译工程不能生成R.java文件今天通过Android SDK Manager把adt升级到21.1,(手贱啊) 结果编译工程发现错误,说是R找不到。 我去源代码看,没有发现错误啊,也没有别的地方导.........
    ▪ s3c6410(arm11核)的LCD驱动了解一(probe)       s3c6410(arm11核)的LCD驱动理解一(probe)static int __devinit s3c_fb_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; //私有数据结构体 struct s3c_fb_platdata *pd; struct s3c_fb *sfb; struct resource *re.........

[1]施用属性和直接使用变量
    来源: 互联网  发布时间: 2014-02-18
使用属性和直接使用变量

   假设[NSArray arrayWithObjects:[NSMutableString stringWithString:@"MutableString"],@"string", nil]为对象A


   MyViewController *myVC=[[MyViewController alloc]init];

    //@autoreleasepool
    //{

    myVC.myArray=[NSArray arrayWithObjects:[NSMutableString stringWithString:@"MutableString"],@"string", nil];

// A retaincount +1 变为 2

    //}
    //_array=myVC.myArray;
    self.array=myVC.myArray; // A retaincount +1 变为 2

    NSLog(@"retain count -> %d", [myVC.myArray retainCount]);

2013-02-15 10:36:43.749 MyTest[2039:c07] retain count -> 3



   MyViewController *myVC=[[MyViewController alloc]init];

    @autoreleasepool
    {
    myVC.myArray=[NSArray arrayWithObjects:[NSMutableString stringWithString:@"MutableString"],@"string", nil];

// A retaincount +1 变为 2

    }// A retaincount -1 变为 1
    //_array=myVC.myArray;
    self.array=myVC.myArray;// A retaincount +1 变为 2

    NSLog(@"retain count -> %d", [myVC.myArray retainCount]);

2013-02-15 10:36:43.749 MyTest[2039:c07] retain count -> 2


   MyViewController *myVC=[[MyViewController alloc]init];

    @autoreleasepool
    {
    myVC.myArray=[NSArray arrayWithObjects:[NSMutableString stringWithString:@"MutableString"],@"string", nil];

// A retaincount +1 变为 2

    }// A retaincount -1 变为 1
    _array=myVC.myArray; // A retaincount 为 1
    //self.array=myVC.myArray;

    NSLog(@"retain count -> %d", [myVC.myArray retainCount]);

2013-02-15 10:36:43.749 MyTest[2039:c07] retain count -> 1




    
[2] 晋级ADT到21.1后,编译工程不能生成R.java文件
    来源: 互联网  发布时间: 2014-02-18
升级ADT到21.1后,编译工程不能生成R.java文件

今天通过Android SDK Manager把adt升级到21.1,(手贱啊)

结果编译工程发现错误,说是R找不到。

我去源代码看,没有发现错误啊,也没有别的地方导致编译错误不能生成R的地方。

哎,又栽倒一次,上次是升级到android 4.1的时候,谷歌把eclipse和sdk打成一个包,原来老的方式升级adt后,sdk的其它高版本升级不了。

谷歌,你这个开发环境能不能搞得好点?

开你个eclipse,就要吃1个多G的内存,还不算模拟器。机器配置要是差点,都不好意思玩你。

你现在,搞来搞去,老是,一升级,你的sdk工具和eclipse工具不配套,就编译不了。


不废话了,说说我的解决方法吧,

就是找打eclipse的plugins目录,把别人好的,那几个和android相关的jar包拷过来。或者,把com.android.ide.*这些开头的jar包和文件夹都删了,然后,打开eclipse,在help菜单里面选择Install New Software,里面和过去一样安装adt,可参考:http://blog.csdn.net/forlong401/article/details/6890908



1楼forlong401前天 11:21用了一晚上,发现这玩意有隐患(资源文件没有,居然不报错,nnd,非要运行的时候才crash),还是重新配置一个吧。Re: forlong401前天 11:45回复forlong401n找到原因了,字符串没有在英文中定义,只在中文中定义了。这样运行在英文语言下就报错了。neclipse和adt应该做一个默认判断检查就好了。n当然也怪自己,code在不同版本之间切换,checkout,乱搞一气。

    
[3] s3c6410(arm11核)的LCD驱动了解一(probe)
    来源: 互联网  发布时间: 2014-02-18
s3c6410(arm11核)的LCD驱动理解一(probe)
static int __devinit s3c_fb_probe(struct platform_device *pdev)
{
	struct device *dev = &pdev->dev;
	//私有数据结构体
	struct s3c_fb_platdata *pd;
	struct s3c_fb *sfb;
	struct resource *res;
	int win;
	int ret = 0;

	pd = pdev->dev.platform_data;
	if (!pd) {
		dev_err(dev, "no platform data specified\n");
		return -EINVAL;
	}
	//申请一段struct s3c_fb内存
	sfb = kzalloc(sizeof(struct s3c_fb), GFP_KERNEL);
	if (!sfb) {
		dev_err(dev, "no memory for framebuffers\n");
		return -ENOMEM;
	}
	//下面一大段程序就是初始化struct s3c_fb类型结构体sfb
	sfb->dev = dev;
	sfb->pdata = pd;
	//获取时钟结构体bus_clk
	sfb->bus_clk = clk_get(dev, "lcd");
	//判断该指针是否有效
	if (IS_ERR(sfb->bus_clk)) {
		dev_err(dev, "failed to get bus clock\n");
		goto err_sfb;
	}
	//使能LCD时钟
	clk_enable(sfb->bus_clk);
	//IO映射
	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	if (!res) {
		dev_err(dev, "failed to find registers\n");
		ret = -ENOENT;
		goto err_clk;
	}

	sfb->regs_res = request_mem_region(res->start, resource_size(res),
					   dev_name(dev));
	if (!sfb->regs_res) {
		dev_err(dev, "failed to claim register region\n");
		ret = -ENOENT;
		goto err_clk;
	}

	sfb->regs = ioremap(res->start, resource_size(res));
	if (!sfb->regs) {
		dev_err(dev, "failed to map registers\n");
		ret = -ENXIO;
		goto err_req_region;
	}

	dev_dbg(dev, "got resources (regs %p), probing windows\n", sfb->regs);

	/* setup gpio and output polarity controls */
	//setup_gpio,这个函数需要在板级配置文件(smdk6410.c)中实现
	pd->setup_gpio();
	//vidcon1也是要在板级配置文件中配置,看数据手册可知,VIDCON1是LCD控制寄存器
	writel(pd->vidcon1, sfb->regs + VIDCON1);

	/* zero all windows before we do anything */
	//初始化s3c6410的window寄存器
	for (win = 0; win < S3C_FB_MAX_WIN; win++)
		s3c_fb_clear_win(sfb, win);

	/* we have the register setup, start allocating framebuffers */

	for (win = 0; win < S3C_FB_MAX_WIN; win++) {
		//判断这个win在板级配置文件中是否被配置,若未被配置,跳过此操作
		//在我的板级配置文件中是配置成win[0]
		if (!pd->win[win])
			continue;
		//probe最重要的函数,是关于framebuffer的操作
		ret = s3c_fb_probe_win(sfb, win, &sfb->windows[win]);
		if (ret < 0) {
			dev_err(dev, "failed to create window %d\n", win);
			for (; win >= 0; win--)
				s3c_fb_release_win(sfb, sfb->windows[win]);
			goto err_ioremap;
		}
	}
 	//把sfb保存为平台设备私有数据,在后面就可以调用platform_get_drvdata获取sfb
	platform_set_drvdata(pdev, sfb);

	return 0;

err_ioremap:
	iounmap(sfb->regs);

err_req_region:
	release_resource(sfb->regs_res);
	kfree(sfb->regs_res);

err_clk:
	clk_disable(sfb->bus_clk);
	clk_put(sfb->bus_clk);

err_sfb:
	kfree(sfb);
	return ret;
}


    
最新技术文章:
▪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的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪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