目前收集到的有关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); } }