In my app B, I need to check if app A ever installed. If A has been installed, B will invoke A
There is currently no way for you to check whether a third-party application was installed on the device. However, it you are the publisher of that application, you can use:
IEnumerable<Package> apps = Windows.Phone.Management.Deployment.InstallationManager.FindPackagesForCurrentPublisher();
apps.First().Launch(string.Empty);
This capability is documented here.
If app A and app B are not from the same publisher there is no direct way to get this. However, if you were able to work with the developer of app B to register a custom URI association, app A could interact with the app by launching the custom URI.
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206987(v=vs.105).aspx