目前收集到的有关winphone资料如下:
如果您有更好的资料请联系我,会持续更新,方便大家;
最后更新日期:2013年11月21日 14:26:35
a)Microsoft.Press.Windows.Phone.8.Development.Internals.pdf(英文版)
http://pan.baidu.com/s/1lAZAP
a+)深入浅出windows phone 8.rar
http://pan.baidu.com/s/1mr4cP
b)Windows Phone 8 Developer Docs.chm
http://pan.baidu.com/s/1uy2zq
c)http://wp.eoe.cn的wp入门第一期(中文版)
http://pan.baidu.com/s/1Bt00R
eoe的wp入门第二期
http://pan.baidu.com/s/1rGCfE
IOS开发静态库其实挺方便的,如果你做外包的可能经常用到吧,一般有两种静态库和FrameWork两种,当前用到的是静态库,FrameWork的还在研究中。
创建步骤:
1. Cocoa Touch Static Library
2. 编写方法和类库
3.Command + B 编译 就生成了,很简单吧
在Target 里面选中静态库,然后在Build Phases里面新增一个Copy Headers选项(Editor->Add Build Phase->Add Copy Headers Build Phase) 添加你的对外或者私有的类或公共类。
重新编译一边就好了,然后再Products里面看到生成的静态库,然后 show Finder里面找到它
根据你选中的是模拟器还是IOS Device,编译器会生成不同的静态库,可以通过
lipo -info 静态库名.a 查看当前的编译架构是i386 还是armv7 这个很重要会导致你编译的是否成功
打印一下生成的不同结果:IOS Device 编译:Architectures in the fat file: libFromCZ.a are: armv7和 iphone Similator: libFromCZ.a is architecture: i386
两个不同的架构当然需要不同的静态库文件了,就好像push证书有越狱和官方两种,有的人会想到用两种静态,这杨也是可以的,不过steve1018给了很好的做法两个合并到一起
lipo -create arm/静态库名1.a i386/静态库命2.a 合并后的静态库名.a
静态库名1.a: IOS Device 编译的
静态库名2.a: Iphone Similator编译 最后两个在合并就好了
可以参考steve1018:http://blog.csdn.net/steve1018/article/details/6902973
package com.example.dualsimtest;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
public static final String[] dualSimTypes = { "subscription", "Subscription",
"com.android.phone.extra.slot",
"phone", "com.android.phone.DialingMode",
"simId", "simnum", "phone_type",
"simSlot" };
EditText inputV;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inputV = (EditText) findViewById(R.id.input);
findViewById(R.id.call).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
String number = inputV.getText().toString().trim();
if (number.equals("")) {
Toast.makeText(MainActivity.this, "输入号码不恩为空", 1500).show();
} else {
call(number);
}
}
});
}
private void call(String phone) {
Intent callIntent = new Intent(Intent.ACTION_CALL)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
callIntent.setData(Uri.parse("tel:" + phone));
for (int i=0; i < dualSimTypes.length; i++) {
callIntent.putExtra(dualSimTypes[i], 2);
}
this.startActivity(callIntent);
}
}